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
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))
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))