summaryrefslogtreecommitdiffstats
path: root/api.py
diff options
context:
space:
mode:
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