def test_create_service_callback_api(notify_db, admin_request, sample_service): data = { "url": "https://some.service/delivery-receipt-endpoint", "bearer_token": "some-unique-string", "notification_statuses": ["failed"], "updated_by_id": str(sample_service.users[0].id) } resp_json = admin_request.post( 'service_callback.create_service_callback_api', service_id=sample_service.id, _data=data, _expected_status=201) resp_json = resp_json["data"] assert resp_json["id"] assert resp_json["service_id"] == str(sample_service.id) assert resp_json["url"] == "https://some.service/delivery-receipt-endpoint" assert resp_json["updated_by_id"] == str(sample_service.users[0].id) assert resp_json["created_at"] assert not resp_json["updated_at"] assert resp_json.get("bearer_token") is None from app.dao.service_callback_api_dao import get_service_callback_api created_service_callback_api = get_service_callback_api( resp_json["id"], resp_json["service_id"]) assert created_service_callback_api.callback_type == DELIVERY_STATUS_CALLBACK_TYPE
def remove_service_callback_api(service_id, callback_api_id): callback_api = get_service_callback_api(callback_api_id, service_id) if not callback_api: error = "Service delivery receipt callback API not found" raise InvalidRequest(error, status_code=404) delete_service_callback_api(callback_api) return "", 204
def update_service_callback_api(service_id, callback_api_id): data = request.get_json() validate(data, update_service_callback_api_schema) to_update = get_service_callback_api(callback_api_id, service_id) reset_service_callback_api(service_callback_api=to_update, updated_by_id=data["updated_by_id"], url=data.get("url", None), bearer_token=data.get("bearer_token", None)) return jsonify(data=to_update.serialize()), 200
def update_service_callback_api(service_id, callback_api_id): request_json = request.get_json() validate(request_json, update_service_callback_api_request_schema) current_service_callback_api = get_service_callback_api(callback_api_id, service_id) updated_service_callback_api = service_callback_api_schema.load( request_json, instance=current_service_callback_api, transient=True, partial=True ).data store_service_callback_api(updated_service_callback_api) return jsonify(data=service_callback_api_schema.dump(updated_service_callback_api).data), 200
def test_get_service_callback_api(sample_service): service_callback_api = ServiceCallbackApi( service_id=sample_service.id, url="https://some_service/callback_endpoint", bearer_token="some_unique_string", updated_by_id=sample_service.users[0].id ) save_service_callback_api(service_callback_api) callback_api = get_service_callback_api(service_callback_api.id, sample_service.id) assert callback_api.id is not None assert callback_api.service_id == sample_service.id assert callback_api.updated_by_id == sample_service.users[0].id assert callback_api.url == "https://some_service/callback_endpoint" assert callback_api.bearer_token == "some_unique_string" assert callback_api._bearer_token != "some_unique_string" assert callback_api.updated_at is None
def test_get_service_callback_api(sample_service): notification_statuses = [NOTIFICATION_FAILED] service_callback_api = ServiceCallbackApi( # nosec service_id=sample_service.id, url="https://some_service/callback_endpoint", bearer_token="some_unique_string", updated_by_id=sample_service.users[0].id, notification_statuses=notification_statuses ) save_service_callback_api(service_callback_api) callback_api = get_service_callback_api(service_callback_api.id, sample_service.id) assert callback_api.id is not None assert callback_api.service_id == sample_service.id assert callback_api.updated_by_id == sample_service.users[0].id assert callback_api.url == "https://some_service/callback_endpoint" assert callback_api.bearer_token == "some_unique_string" assert callback_api._bearer_token != "some_unique_string" assert callback_api.updated_at is None
def fetch_service_callback_api(service_id, callback_api_id): callback_api = get_service_callback_api(callback_api_id, service_id) return jsonify(data=callback_api.serialize()), 200
def fetch_service_callback_api(service_id, callback_api_id): service_callback_api = get_service_callback_api(callback_api_id, service_id) return jsonify(data=service_callback_api_schema.dump(service_callback_api).data), 200