示例#1
0
def update_provider_details(provider_details_id):
    fetched_provider_details = get_provider_details_by_id(provider_details_id)

    current_data = dict(provider_details_schema.dump(fetched_provider_details).data.items())
    current_data.update(request.get_json())
    update_dict = provider_details_schema.load(current_data).data

    invalid_keys = {'identifier', 'version', 'updated_at'} & set(key for key in request.get_json().keys())
    if invalid_keys:
        message = "Not permitted to be updated"
        errors = {key: [message] for key in invalid_keys}
        raise InvalidRequest(errors, status_code=400)

    dao_update_provider_details(update_dict)
    return jsonify(provider_details=provider_details_schema.dump(fetched_provider_details).data), 200
示例#2
0
def test_provider_details_history_schema_returns_user_details(
        mocker, sample_user, restore_provider_details, current_sms_provider):
    from app.schemas import provider_details_schema
    mocker.patch('app.provider_details.switch_providers.get_user_by_id',
                 return_value=sample_user)
    current_sms_provider.created_by_id = sample_user.id
    data = provider_details_schema.dump(current_sms_provider).data

    dao_update_provider_details(current_sms_provider)

    current_sms_provider_in_history = ProviderDetailsHistory.query.filter(
        ProviderDetailsHistory.id == current_sms_provider.id).order_by(
            desc(ProviderDetailsHistory.version)).first()
    data = provider_details_schema.dump(current_sms_provider_in_history).data

    assert sorted(data['created_by'].keys()) == sorted(
        ['id', 'email_address', 'name'])
示例#3
0
def test_provider_details_schema_returns_user_details(
        mocker, sample_user, restore_provider_details):
    from app.schemas import provider_details_schema
    current_sms_provider = get_provider_details_by_identifier('mmg')
    current_sms_provider.created_by = sample_user
    data = provider_details_schema.dump(current_sms_provider).data

    assert sorted(data['created_by'].keys()) == sorted(
        ['id', 'email_address', 'name'])
示例#4
0
def test_provider_details_schema_returns_user_details(mocker, sample_user,
                                                      current_sms_provider):
    from app.schemas import provider_details_schema
    mocker.patch('app.provider_details.switch_providers.get_user_by_id',
                 return_value=sample_user)
    current_sms_provider.created_by = sample_user
    data = provider_details_schema.dump(current_sms_provider).data

    assert sorted(data['created_by'].keys()) == sorted(
        ['id', 'email_address', 'name'])
示例#5
0
def update_provider_details(provider_details_id):
    valid_keys = {"priority", "created_by", "active"}
    req_json = request.get_json()

    invalid_keys = req_json.keys() - valid_keys
    if invalid_keys:
        message = "Not permitted to be updated"
        errors = {key: [message] for key in invalid_keys}
        raise InvalidRequest(errors, status_code=400)

    provider = get_provider_details_by_id(provider_details_id)

    # Handle created_by differently due to how history entry is created
    if "created_by" in req_json:
        user = get_user_by_id(req_json["created_by"])
        provider.created_by_id = user.id
        req_json.pop("created_by")

    for key in req_json:
        setattr(provider, key, req_json[key])
    dao_update_provider_details(provider)

    return jsonify(
        provider_details=provider_details_schema.dump(provider).data), 200
示例#6
0
def get_provider_by_id(provider_details_id):
    data = provider_details_schema.dump(get_provider_details_by_id(provider_details_id)).data
    return jsonify(provider_details=data)
示例#7
0
def get_providers():
    data = provider_details_schema.dump(get_provider_details(), many=True).data
    return jsonify(provider_details=data)
示例#8
0
def get_provider_by_id(provider_details_id):
    data = provider_details_schema.dump(
        get_provider_details_by_id(provider_details_id)).data
    return jsonify(provider_details=data)
示例#9
0
def get_providers():
    data = provider_details_schema.dump(get_provider_details(), many=True).data
    return jsonify(provider_details=data)