summaryrefslogtreecommitdiffstats
path: root/api.py
diff options
context:
space:
mode:
authorPierre-Yves Chibon <pingou@pingoured.fr>2012-03-28 20:46:43 +0200
committerPierre-Yves Chibon <pingou@pingoured.fr>2012-03-28 20:46:43 +0200
commitde36b45bc8b645456449c15bdd7950ce48e6b0db (patch)
treef158cb1307274acdd2a660e04784c47573000090 /api.py
parent26a3772b571398537affa10e7bb9cfbfdfb18c1c (diff)
downloadhyperkitty-de36b45bc8b645456449c15bdd7950ce48e6b0db.tar.gz
hyperkitty-de36b45bc8b645456449c15bdd7950ce48e6b0db.tar.xz
hyperkitty-de36b45bc8b645456449c15bdd7950ce48e6b0db.zip
Add first bits of a REST API relying on the django-rest-framework
Diffstat (limited to 'api.py')
-rw-r--r--api.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/api.py b/api.py
new file mode 100644
index 0000000..4bdcd27
--- /dev/null
+++ b/api.py
@@ -0,0 +1,38 @@
+# mongodb/api.py
+from djangorestframework.views import View
+
+from django.conf.urls.defaults import url
+from django.http import HttpResponseNotModified, HttpResponse
+from lib import mongo
+import pymongo
+import json
+
+connection = pymongo.Connection('localhost', 27017)
+
+
+class EmailResource(View):
+ """ Resource used to retrieve emails from the archives using the
+ REST API.
+ """
+
+ def get(self, request, mlist_fqdn, messageid):
+ list_name = mlist_fqdn.split('@')[0]
+ email = mongo.get_email(list_name, messageid)
+ if not email:
+ return HttpResponse(status=404)
+ else:
+ return email
+
+
+class ThreadResource(View):
+ """ Resource used to retrieve threads from the archives using the
+ REST API.
+ """
+
+ def get(self, request, mlist_fqdn, threadid):
+ list_name = mlist_fqdn.split('@')[0]
+ thread = mongo.get_thread_list(list_name, threadid)
+ if not thread:
+ return HttpResponse(status=404)
+ else:
+ return thread