This repository has been archived by the owner on Oct 6, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
HTTPMethod.scala
66 lines (50 loc) · 1.81 KB
/
HTTPMethod.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
Copyright 2011 Michael Eichberg et al
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package org.dorest.server
/** The list of all HTTP Methods as defined by RFC 2616: "Hypertext Transfer Protocol -- HTTP/1.1" and also
* by RFC 5789: "PATCH Method for HTTP".
*
* @author Michael Eichberg
* @author Mateusz Parzonka
*/
sealed trait HTTPMethod
object HTTPMethod {
def apply(methodName: String) = methodName match {
case "GET" ⇒ GET
case "POST" ⇒ POST
case "PUT" ⇒ PUT
case "DELETE" ⇒ DELETE
case "PATCH" ⇒ PATCH
case "OPTIONS" ⇒ OPTIONS
case "HEAD" ⇒ HEAD
case "CONNECT" ⇒ CONNECT
}
def unapply(method: HTTPMethod): String = method match {
case GET ⇒ "GET"
case POST ⇒ "POST"
case PUT ⇒ "PUT"
case DELETE ⇒ "DELETE"
case PATCH ⇒ "PATCH"
case OPTIONS ⇒ "OPTIONS"
case HEAD ⇒ "HEAD"
case CONNECT ⇒ "CONNECT"
}
}
case object GET extends HTTPMethod
case object POST extends HTTPMethod
case object PUT extends HTTPMethod
case object DELETE extends HTTPMethod
case object PATCH extends HTTPMethod
case object OPTIONS extends HTTPMethod
case object HEAD extends HTTPMethod
case object CONNECT extends HTTPMethod