def delivery_status_callback(service_id): delivery_status_callback = get_delivery_status_callback_details() back_link = ('.api_callbacks' if 'inbound_sms' in current_service['permissions'] else '.api_integration') form = ServiceDeliveryStatusCallbackForm( url=delivery_status_callback.get('url') if delivery_status_callback else '', bearer_token=dummy_bearer_token if delivery_status_callback else '') if form.validate_on_submit(): if delivery_status_callback: if (delivery_status_callback.get('url') != form.url.data or form.bearer_token.data != dummy_bearer_token): service_api_client.update_service_callback_api( service_id, url=form.url.data, bearer_token=check_token_against_dummy_bearer( form.bearer_token.data), user_id=current_user.id, callback_api_id=delivery_status_callback.get('id')) else: service_api_client.create_service_callback_api( service_id, url=form.url.data, bearer_token=form.bearer_token.data, user_id=current_user.id) return redirect(url_for(back_link, service_id=service_id)) return render_template( 'views/api/callbacks/delivery-status-callback.html', back_link=back_link, form=form, )
def delivery_status_callback(service_id): delivery_status_callback = get_delivery_status_callback_details() back_link = ( '.api_callbacks' if current_service.has_permission('inbound_sms') else '.api_integration' ) form = ServiceDeliveryStatusCallbackForm( url=delivery_status_callback.get('url') if delivery_status_callback else '', bearer_token=dummy_bearer_token if delivery_status_callback else '' ) if form.validate_on_submit(): if delivery_status_callback and form.url.data: if ( delivery_status_callback.get('url') != form.url.data or form.bearer_token.data != dummy_bearer_token ): service_api_client.update_service_callback_api( service_id, url=form.url.data, bearer_token=check_token_against_dummy_bearer(form.bearer_token.data), user_id=current_user.id, callback_api_id=delivery_status_callback.get('id') ) elif delivery_status_callback and not form.url.data: service_api_client.delete_service_callback_api( service_id, delivery_status_callback['id'], ) elif form.url.data: service_api_client.create_service_callback_api( service_id, url=form.url.data, bearer_token=form.bearer_token.data, user_id=current_user.id ) else: # If no callback is set up and the user chooses to continue # having no callback (ie both fields empty) then there’s # nothing for us to do here pass return redirect(url_for(back_link, service_id=service_id)) return render_template( 'views/api/callbacks/delivery-status-callback.html', back_link=back_link, form=form, )