diff options
-rw-r--r-- | core.go | 26 | ||||
-rw-r--r-- | http.go | 26 | ||||
-rw-r--r-- | tests/test.go | 43 |
3 files changed, 70 insertions, 25 deletions
@@ -5,36 +5,12 @@ import ( ) type Resource interface { - Get(p [string][]string) string + Get(map[string][]string) string Post(map[string][]string) string Put(map[string][]string) string Delete(map[string][]string) string } -type GetNotSupported struct{} - -func (GetNotSupported) Get(map[string][]string) string { - return "Nope." -} - -type PostNotSupported struct{} - -func (PostNotSupported) Post(map[string][]string) string { - return "Nope." -} - -type PutNotSupported struct{} - -func (PutNotSupported) Put(map[string][]string) string { - return "Nope." -} - -type DeleteNotSupported struct{} - -func (DeleteNotSupported) Delete(map[string][]string) string { - return "Nope." -} - type Route struct { resource Resource path string @@ -0,0 +1,26 @@ +package sleepy + +type GetNotSupported struct{} + +func (GetNotSupported) Get(map[string][]string) string { + return "Nope." +} + +type PostNotSupported struct{} + +func (PostNotSupported) Post(map[string][]string) string { + return "Nope." +} + +type PutNotSupported struct{} + +func (PutNotSupported) Put(map[string][]string) string { + return "Nope." +} + +type DeleteNotSupported struct{} + +func (DeleteNotSupported) Delete(map[string][]string) string { + return "Nope." +} + diff --git a/tests/test.go b/tests/test.go new file mode 100644 index 0000000..055067c --- /dev/null +++ b/tests/test.go @@ -0,0 +1,43 @@ +package main + +import ( + "fmt" + "sleepy" + "net/http" +) + +type Bar struct { + sleepy.PostNotSupported + sleepy.PutNotSupported + sleepy.DeleteNotSupported +} + +func (b Bar) Get(map[string][]string) string { + return "Hello" +} + +type Baz struct { + sleepy.PostNotSupported + sleepy.PutNotSupported + sleepy.DeleteNotSupported +} + +func (b Baz) Get(map[string][]string) string { + return "Goodbye" +} + +func main() { + bar := new(Bar) + baz := new(Baz) + + var api = new(sleepy.Api) + api.AddResource(bar, "/bar") + api.AddResource(baz, "/baz") + + request1, _ := http.NewRequest("GET", "https://dougblack.io/bar", nil) + request2, _ := http.NewRequest("GET", "https://dougblack.io/baz", nil) + fmt.Println(api.HandleRequest(request1)) + fmt.Println(api.HandleRequest(request2)) + +} + |