From de36b45bc8b645456449c15bdd7950ce48e6b0db Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Wed, 28 Mar 2012 20:46:43 +0200 Subject: Add first bits of a REST API relying on the django-rest-framework --- api.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 api.py (limited to 'api.py') 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 -- cgit