diff options
author | Aamir Khan <syst3m.w0rm@gmail.com> | 2012-07-24 17:00:25 -0400 |
---|---|---|
committer | Aamir Khan <syst3m.w0rm@gmail.com> | 2012-07-24 17:00:25 -0400 |
commit | 9f18a590819a01017c15169d82763680a72848fb (patch) | |
tree | 9c781cd677eeae9b1e50e986647e1929e99bdac7 /api.py | |
parent | ae77d9901e2a466622818f95d784fb85b5296727 (diff) | |
download | hyperkitty-9f18a590819a01017c15169d82763680a72848fb.tar.gz hyperkitty-9f18a590819a01017c15169d82763680a72848fb.tar.xz hyperkitty-9f18a590819a01017c15169d82763680a72848fb.zip |
Packaging hyperkitty
Diffstat (limited to 'api.py')
-rw-r--r-- | api.py | 69 |
1 files changed, 0 insertions, 69 deletions
@@ -1,69 +0,0 @@ -#-*- coding: utf-8 -*- - -from djangorestframework.views import View -from django.conf.urls.defaults import url -from django.conf import settings -from django.http import HttpResponseNotModified, HttpResponse -from kittystore.kittysastore import KittySAStore -import json -import re - -from gsoc.utils import log - -STORE = KittySAStore(settings.KITTYSTORE_URL) - - -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 = STORE.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 = STORE.get_thread(list_name, threadid) - if not thread: - return HttpResponse(status=404) - else: - return thread - - -class SearchResource(View): - """ Resource used to search the archives using the REST API. - """ - - def get(self, request, mlist_fqdn, field, keyword): - list_name = mlist_fqdn.split('@')[0] - - if field not in ['Subject', 'Content', 'SubjectContent', 'From']: - return HttpResponse(status=404) - - regex = '.*%s.*' % keyword - if field == 'SubjectContent': - query_string = {'$or' : [ - {'Subject': re.compile(regex, re.IGNORECASE)}, - {'Content': re.compile(regex, re.IGNORECASE)} - ]} - else: - query_string = {field.capitalize(): - re.compile(regex, re.IGNORECASE)} - - print query_string, field, keyword - threads = STORE.search_archives(list_name, query_string) - if not threads: - return HttpResponse(status=404) - else: - return threads |