Beispiel #1
0
def api(request):
    if request.META['REQUEST_METHOD'] == "OPTIONS":
        response = render_to_json_response({'status': {'code': 200,
                                                       'text': 'use POST'}})
        response['Access-Control-Allow-Origin'] = '*'
        return response
    if not 'action' in request.POST:
        methods = actions.keys()
        api = []
        for f in sorted(methods):
            api.append({'name': f,
                        'doc': actions.doc(f).replace('\n', '<br>\n')})
        context = RequestContext(request, {
            'api': api,
            'settings': settings,
            'sitename': settings.SITENAME
        })
        return render_to_response('api.html', context)
    action = request.POST['action']
    version = getattr(request, 'version', None)
    if version:
        f = actions.versions.get(version, {}).get(action, actions.get(action))
    else:
        f = actions.get(action)
    if f:
        response = f(request)
    else:
        response = render_to_json_response(json_response(status=400,
                                text='Unknown action %s' % action))
    response['Access-Control-Allow-Origin'] = '*'
    return response
Beispiel #2
0
def handle_api(event):
    action = actions.get(event.get("Action"))
    if not action:
        return InternalServerError

    list_address = event.get("ListAddress")
    try:
        event["List"] = List(list_address)
    except (UnknownList, TypeError, ValueError):
        event["List"] = None

    if event["List"]:
        event["Member"] = event["List"].member_with_address(event.get("MemberAddress"))
    else:
        event["Member"] = None
    try:
        return action(**event)
    except TypeError as e:
        if event.get("Debug"):
            raise
        return BadRequest(unicode(e))
Beispiel #3
0
def handle_api(event):
    action = actions.get(event.get('Action'))
    if not action:
        return InternalServerError

    list_address = event.get('ListAddress')
    try:
        event['List'] = List(list_address)
    except (UnknownList, TypeError, ValueError):
        event['List'] = None

    if event['List']:
        event['Member'] = event['List'].member_with_address(
            event.get('MemberAddress'))
    else:
        event['Member'] = None
    try:
        return action(**event)
    except TypeError as e:
        if event.get('Debug'):
            raise
        return BadRequest(unicode(e))