From e8e9d2e14287a7e111c2e9f0a5a11237d14a7ce4 Mon Sep 17 00:00:00 2001 From: Doug Black Date: Thu, 23 Jan 2014 21:01:57 -0800 Subject: initial commit --- core.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 core.go (limited to 'core.go') diff --git a/core.go b/core.go new file mode 100644 index 0000000..29dcfcb --- /dev/null +++ b/core.go @@ -0,0 +1,40 @@ +package sleepy + +type Resource interface { + Get() string + // Post + // Put + // Delete +} + +type Route struct { + resource Resource + path string +} + +func (route *Route) pathMatch(path string) bool { + return route.path == path +} + +type Api struct { + routes []Route +} + +func (api *Api) matchResource(path string) Resource { + for _, route := range api.routes { + if route.pathMatch(path) { + return route.resource + } + } + return nil +} + +func (api *Api) HandleRequest(path string) string { + resource := api.matchResource(path) + return resource.Get() +} + + +func (api *Api) AddResource(resource Resource, path string) { + api.routes = append(api.routes, Route{resource, path}) +} -- cgit