diff options
author | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-03-28 20:46:43 +0200 |
---|---|---|
committer | Pierre-Yves Chibon <pingou@pingoured.fr> | 2012-03-28 20:46:43 +0200 |
commit | de36b45bc8b645456449c15bdd7950ce48e6b0db (patch) | |
tree | f158cb1307274acdd2a660e04784c47573000090 /api.py | |
parent | 26a3772b571398537affa10e7bb9cfbfdfb18c1c (diff) | |
download | hyperkitty-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.py | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -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 |