diff options
Diffstat (limited to 'snakeplan/api')
-rw-r--r-- | snakeplan/api/__init__.py | 0 | ||||
-rw-r--r-- | snakeplan/api/handlers.py | 26 | ||||
-rw-r--r-- | snakeplan/api/urls.py | 35 |
3 files changed, 61 insertions, 0 deletions
diff --git a/snakeplan/api/__init__.py b/snakeplan/api/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/snakeplan/api/__init__.py | |||
diff --git a/snakeplan/api/handlers.py b/snakeplan/api/handlers.py new file mode 100644 index 0000000..0377ffc --- /dev/null +++ b/snakeplan/api/handlers.py | |||
@@ -0,0 +1,26 @@ | |||
1 | from piston.handler import BaseHandler | ||
2 | from projects import models | ||
3 | |||
4 | |||
5 | class ProjectHandler(BaseHandler): | ||
6 | |||
7 | allowed_methods = ('GET', ) | ||
8 | exclude = () | ||
9 | model = models.Project | ||
10 | |||
11 | |||
12 | class TaskHandler(BaseHandler): | ||
13 | |||
14 | allowed_methods = ('GET', ) | ||
15 | exclude = () | ||
16 | model = models.Task | ||
17 | |||
18 | |||
19 | class ProjectStoryHandler(BaseHandler): | ||
20 | |||
21 | allowed_methds = ('GET', ) | ||
22 | exclude = () | ||
23 | model = models.Project | ||
24 | |||
25 | def read(self, request, id): | ||
26 | return self.model.objects.get(id=id).stories.all() | ||
diff --git a/snakeplan/api/urls.py b/snakeplan/api/urls.py new file mode 100644 index 0000000..1d223fb --- /dev/null +++ b/snakeplan/api/urls.py | |||
@@ -0,0 +1,35 @@ | |||
1 | # vim: set filencoding=utf8 | ||
2 | """ | ||
3 | API URLConf | ||
4 | |||
5 | @author: Mike Crute (mcrute@gmail.com) | ||
6 | @organization: SoftGroup Interactive, Inc. | ||
7 | @date: July 13, 2010 | ||
8 | """ | ||
9 | |||
10 | # Licensed under the Apache License, Version 2.0 (the "License"); | ||
11 | # you may not use this file except in compliance with the License. | ||
12 | # You may obtain a copy of the License at | ||
13 | # | ||
14 | # http://www.apache.org/licenses/LICENSE-2.0 | ||
15 | # | ||
16 | # Unless required by applicable law or agreed to in writing, software | ||
17 | # distributed under the License is distributed on an "AS IS" BASIS, | ||
18 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
19 | # See the License for the specific language governing permissions and | ||
20 | # limitations under the License. | ||
21 | |||
22 | |||
23 | from django.conf.urls.defaults import patterns, include, url | ||
24 | from piston.resource import Resource | ||
25 | |||
26 | import handlers | ||
27 | |||
28 | urlpatterns = patterns('', | ||
29 | url(r'project/(?P<id>[^/]+)/stories', Resource(handlers.ProjectStoryHandler)), | ||
30 | url(r'project/(?P<id>[^/]+)/', Resource(handlers.ProjectHandler)), | ||
31 | url(r'project/', Resource(handlers.ProjectHandler)), | ||
32 | |||
33 | url(r'task/(?P<id>[^/]+)/', Resource(handlers.TaskHandler)), | ||
34 | url(r'task/', Resource(handlers.TaskHandler)), | ||
35 | ) | ||