2023-03-28 23:55:57 +03:00
|
|
|
// Copyright (c) 2019-2023 Alexander Medvednikov. All rights reserved.
|
2020-07-28 10:39:10 +03:00
|
|
|
// Use of this source code is governed by an MIT license
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
module http
|
|
|
|
|
|
|
|
// The methods listed here are some of the most used ones, ordered by
|
|
|
|
// commonality. A comprehensive list is available at:
|
|
|
|
// https://www.iana.org/assignments/http-methods/http-methods.xhtml
|
|
|
|
pub enum Method {
|
|
|
|
get
|
|
|
|
post
|
|
|
|
put
|
|
|
|
head
|
|
|
|
delete
|
|
|
|
options
|
|
|
|
trace
|
|
|
|
connect
|
|
|
|
patch
|
|
|
|
}
|
|
|
|
|
2023-01-27 14:58:55 +03:00
|
|
|
// str returns the string representation of the HTTP Method `m`.
|
2020-07-28 12:34:08 +03:00
|
|
|
pub fn (m Method) str() string {
|
2020-07-28 10:39:10 +03:00
|
|
|
return match m {
|
|
|
|
.get { 'GET' }
|
|
|
|
.post { 'POST' }
|
|
|
|
.put { 'PUT' }
|
|
|
|
.head { 'HEAD' }
|
|
|
|
.delete { 'DELETE' }
|
|
|
|
.options { 'OPTIONS' }
|
|
|
|
.trace { 'TRACE' }
|
|
|
|
.connect { 'CONNECT' }
|
|
|
|
.patch { 'PATCH' }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-27 14:58:55 +03:00
|
|
|
// method_from_str returns the corresponding Method enum field
|
|
|
|
// given a string `m`, e.g. `'GET'` would return Method.get.
|
|
|
|
//
|
|
|
|
// Currently, the default value is Method.get for unsupported string value.
|
2020-07-28 10:39:10 +03:00
|
|
|
pub fn method_from_str(m string) Method {
|
|
|
|
return match m {
|
|
|
|
'GET' { Method.get }
|
|
|
|
'POST' { Method.post }
|
|
|
|
'PUT' { Method.put }
|
|
|
|
'HEAD' { Method.head }
|
|
|
|
'DELETE' { Method.delete }
|
|
|
|
'OPTIONS' { Method.options }
|
|
|
|
'TRACE' { Method.trace }
|
|
|
|
'CONNECT' { Method.connect }
|
|
|
|
'PATCH' { Method.patch }
|
|
|
|
else { Method.get } // should we default to GET?
|
|
|
|
}
|
|
|
|
}
|