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
Пример #2
0
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
Пример #4
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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