Revision bd40abfa snf-astakos-app/astakos/im/api/service.py

b/snf-astakos-app/astakos/im/api/service.py
1
# Copyright 2011-2012 GRNET S.A. All rights reserved.
1
# Copyright 2011-2013 GRNET S.A. All rights reserved.
2 2
#
3 3
# Redistribution and use in source and binary forms, with or
4 4
# without modification, are permitted provided that the following
......
36 36
from functools import wraps
37 37
from time import time, mktime
38 38

  
39
from django.http import HttpResponse
40 39
from django.views.decorators.csrf import csrf_exempt
41
from django.utils import simplejson as json
42 40

  
43 41
from . import render_fault, __get_uuid_displayname_catalogs, __send_feedback
44
from .faults import (
45
    Fault, Unauthorized, InternalServerError, BadRequest, ItemNotFound)
42
from snf_django.lib.api import faults
46 43
from astakos.im.models import Service
47 44

  
48 45
logger = logging.getLogger(__name__)
......
55 52
        def wrapper(request, *args, **kwargs):
56 53
            try:
57 54
                if http_method and request.method != http_method:
58
                    raise BadRequest('Method not allowed.')
55
                    raise faults.BadRequest('Method not allowed.')
59 56
                x_auth_token = request.META.get('HTTP_X_AUTH_TOKEN')
60 57
                if token_required:
61 58
                    if not x_auth_token:
62
                        raise Unauthorized('Access denied')
59
                        raise faults.Unauthorized('Access denied')
63 60
                    try:
64 61
                        service = Service.objects.get(auth_token=x_auth_token)
65 62

  
66 63
                        # Check if the token has expired.
67 64
                        if service.auth_token_expires:
68 65
                            if (time() - mktime(service.auth_token_expires.timetuple())) > 0:
69
                                raise Unauthorized('Authentication expired')
66
                                raise faults.Unauthorized('Authentication expired')
70 67
                    except Service.DoesNotExist, e:
71
                        raise Unauthorized('Invalid X-Auth-Token')
68
                        raise faults.Unauthorized('Invalid X-Auth-Token')
72 69
                response = func(request, *args, **kwargs)
73 70
                return response
74
            except Fault, fault:
71
            except faults.Fault, fault:
75 72
                return render_fault(request, fault)
76 73
            except BaseException, e:
77 74
                logger.exception('Unexpected error: %s' % e)
78
                fault = InternalServerError('Unexpected error')
75
                fault = faults.InternalServerError('Unexpected error')
79 76
                return render_fault(request, fault)
80 77
        return wrapper
81 78
    return decorator
82 79

  
80

  
83 81
@csrf_exempt
84 82
@api_method(http_method='POST', token_required=True)
85 83
def get_uuid_displayname_catalogs(request):
......
90 88

  
91 89
    return __get_uuid_displayname_catalogs(request, user_call=False)
92 90

  
91

  
93 92
@csrf_exempt
94 93
@api_method(http_method='POST', token_required=True)
95 94
def send_feedback(request, email_template_name='im/feedback_mail.txt'):

Also available in: Unified diff