def extract_credit_card_params(post_data): """Extract credit card form params from `post_data` """ blank_credit_card_form = CreditCardForm() expected_params = blank_credit_card_form.fields.keys() try: credit_card_params = extract_post_params(post_data, expected_params) except: credit_card_params = None return credit_card_params
def plivo_message_webhook_view(request): """Handles a Plivo webhook request https://www.plivo.com/docs/api/message/ https://manage.plivo.com/app/ """ event = extract_post_params(request.POST, PLIVO_MESSAGE_WEBHOOK_PARAMS) result = handle_message_event(event) if result: response = HttpResponse(status=200) else: raise Http404 return response
def slack_webhook_view(request): """Handles a Slack webhook request https://api.slack.com/outgoing-webhooks """ event = extract_post_params(request.POST, SLACK_WEBHOOK_PARAMS) if is_valid_webhook_event(event, request): from htk.lib.slack.utils import handle_event payload = handle_event(event) if payload: response = json_response(payload) else: response = HttpResponse(status=200) else: raise Http404 return response
def alexa_skill_webhook_view(request): """Handles an Amazon Alexa skill webhook request Sample Request { "session": { "sessionId": "SessionId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "application": { "applicationId": "amzn1.ask.skill.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }, "attributes": {}, "user": { "userId": "amzn1.ask.account.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" }, "new": true }, "request": { "type": "IntentRequest", "requestId": "EdwRequestId.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "locale": "en-US", "timestamp": "2017-05-29T21:37:27Z", "intent": { "name": "ExampleIntent", "slots": {} } }, "version": "1.0" } """ request_json = json.loads(request.body) event = extract_post_params(request_json, ALEXA_SKILL_WEBHOOK_PARAMS) if is_valid_alexa_skill_webhook_event(event, request): from htk.lib.alexa.utils import handle_event payload = handle_event(event) if payload: response = json_response(payload) else: response = HttpResponse(status=200) else: raise Http404 return response