diff --git a/vlib/net/http/http.v b/vlib/net/http/http.v index ca09236882..b5a749d52a 100644 --- a/vlib/net/http/http.v +++ b/vlib/net/http/http.v @@ -14,19 +14,6 @@ const ( bufsize = 1536 ) -pub enum Method { - get - post - put - header - delete - options - head - trace - connect - patch -} - pub struct Request { pub mut: method Method @@ -84,28 +71,6 @@ fn (methods []Method) contains(m Method) bool { return false } -fn (m Method) str() string { - return match m { - .get { 'GET' } - .post { 'POST' } - .header { 'HEADER' } - .put { 'PUT' } - .connect { 'CONNECT' } - else { '' } - } -} - -pub fn method_from_str(m string) Method { - return match m { - 'GET' { Method.get } - 'POST' { Method.post } - 'HEADER' { Method.header } - 'PUT' { Method.put } - 'CONNECT' { Method.connect } - else { Method.get } // should we default to GET? - } -} - pub fn get(url string) ?Response { return fetch_with_method(.get, url, FetchConfig{}) } diff --git a/vlib/net/http/method.v b/vlib/net/http/method.v new file mode 100644 index 0000000000..8353a4a0ca --- /dev/null +++ b/vlib/net/http/method.v @@ -0,0 +1,48 @@ +// Copyright (c) 2019-2020 Alexander Medvednikov. All rights reserved. +// 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 +} + +fn (m Method) str() string { + return match m { + .get { 'GET' } + .post { 'POST' } + .put { 'PUT' } + .head { 'HEAD' } + .delete { 'DELETE' } + .options { 'OPTIONS' } + .trace { 'TRACE' } + .connect { 'CONNECT' } + .patch { 'PATCH' } + } +} + +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? + } +}