Пример #1
0
    def get(name_or_code):
        """Get a list of client parties (registering or secured parties) associated with a head office code or name."""
        try:
            if name_or_code is None:
                return resource_utils.path_param_error_response('nameOrCode')
            fuzzy_param = request.args.get(FUZZY_NAME_SEARCH_PARAM)

            # Quick check: must be staff or provide an account ID.
            account_id = resource_utils.get_account_id(request)
            if not is_staff(jwt) and account_id is None:
                return resource_utils.account_required_response()

            # Verify request JWT and account ID
            if not authorized(account_id, jwt):
                return resource_utils.unauthorized_error_response(account_id)

            # Try to fetch client parties: no results is an empty list.
            current_app.logger.debug(
                f'Getting {account_id} head office party codes searching on {name_or_code}.'
            )
            parties = ClientCode.find_by_head_office(name_or_code, fuzzy_param)
            # if not parties:
            #    return resource_utils.not_found_error_response('party', code)
            return jsonify(parties), HTTPStatus.OK

        except BusinessException as exception:
            return resource_utils.business_exception_response(exception)
        except Exception as default_exception:  # noqa: B902; return nicer default error
            return resource_utils.default_exception_response(default_exception)
Пример #2
0
    def get(code):
        """Get a preset registering or secured party by client code."""
        try:
            if code is None:
                return resource_utils.path_param_error_response('code')

            # Quick check: must be staff or provide an account ID.
            account_id = resource_utils.get_account_id(request)
            if not is_staff(jwt) and account_id is None:
                return resource_utils.account_required_response()

            # Verify request JWT and account ID
            if not authorized(account_id, jwt):
                return resource_utils.unauthorized_error_response(account_id)

            # Try to fetch client party by code
            current_app.logger.debug(
                f'Getting party code for account {account_id} with code = {code}.'
            )
            party = ClientCode.find_by_code(code)
            if not party:
                return resource_utils.not_found_error_response('party', code)

            return party, HTTPStatus.OK

        except BusinessException as exception:
            return resource_utils.business_exception_response(exception)
        except Exception as default_exception:  # noqa: B902; return nicer default error
            return resource_utils.default_exception_response(default_exception)
Пример #3
0
def test_find_party_code(session, desc, exists, search_value):
    """Assert that find client party by code contains all expected elements."""
    party = ClientCode.find_by_code(search_value)
    if exists:
        assert party
        assert party['code'] == search_value
        assert party['address']
        assert party['address']['street']
        assert party['address']['city']
        assert party['address']['region']
        assert party['address']['postalCode']
        assert party['contact']
        assert party['contact']['name']
        assert party['contact']['areaCode']
        assert party['contact']['phoneNumber']
        assert party['businessName']
        assert party['emailAddress']
    else:
        assert not party
Пример #4
0
    def get():
        """Get a list of client parties associated with an account-BCOL number pair."""
        try:
            # Quick check: must be staff or provide an account ID.
            account_id = resource_utils.get_account_id(request)
            if account_id is None:
                return resource_utils.account_required_response()

            # Verify request JWT and account ID
            if not authorized(account_id, jwt):
                return resource_utils.unauthorized_error_response(account_id)

            # Try to fetch client parties: no results is an empty list.
            current_app.logger.debug(f'Getting {account_id}  party codes.')
            parties = ClientCode.find_by_account_id(account_id, True)
            return jsonify(parties), HTTPStatus.OK

        except BusinessException as exception:
            return resource_utils.business_exception_response(exception)
        except Exception as default_exception:  # noqa: B902; return nicer default error
            return resource_utils.default_exception_response(default_exception)
Пример #5
0
def test_find_by_branch_code(session, desc, results_size, search_value):
    """Assert that find client parties by branch code matching contains all expected elements."""
    parties = ClientCode.find_by_branch_start(search_value)
    if results_size > 0:
        assert parties
        assert len(parties) >= results_size
        for party in parties:
            assert len(party['code']) >= 5
            assert party['businessName']
            assert party['address']
            assert party['address']['street']
            assert party['address']['city']
            assert party['address']['region']
            assert party['address']['postalCode']
            assert party['contact']
            assert party['contact']['name']
            assert party['contact']['areaCode']
            assert party['contact']['phoneNumber']
            assert party['emailAddress']
    else:
        assert not parties
Пример #6
0
def test_client_party_json(session):
    """Assert that the client party model renders to a json format correctly."""
    party = ClientCode(id=1000,
                       name='BUSINESS NAME',
                       contact_name='CONTACT',
                       contact_area_cd='250',
                       contact_phone_number='1234567',
                       email_id='*****@*****.**')

    party_json = {
        'code': '1000',
        'businessName': party.name,
        'contact': {
            'name': party.contact_name,
            'phoneNumber': party.contact_phone_number,
            'areaCode': party.contact_area_cd
        },
        'emailAddress': party.email_id
    }

    assert party.json == party_json
Пример #7
0
def test_find_head_office_codes(session, desc, results_size, search_value, fuzzy_search):
    """Assert that find client party by head office contains all expected elements."""
    parties = ClientCode.find_by_head_office(search_value, fuzzy_search)
    if results_size > 0:
        assert parties
        assert len(parties) >= results_size
        for party in parties:
            assert len(party['code']) >= 5
            assert party['businessName']
            assert party['address']
            assert party['address']['street']
            assert party['address']['city']
            assert party['address']['region']
            assert party['address']['postalCode']
            assert party['contact']
            assert party['contact']['name']
            assert party['contact']['areaCode']
            assert party['contact']['phoneNumber']
            assert party['emailAddress']
    else:
        assert not parties
Пример #8
0
def test_find_by_account_id(session, desc, account_id, results_size,
                            crown_charge):
    """Assert that find client parties by account id contains all expected elements."""
    parties = ClientCode.find_by_account_id(account_id, crown_charge)
    if results_size > 0:
        assert parties
        assert len(parties) >= results_size
        for party in parties:
            assert len(party['code']) >= 5
            assert party['businessName']
            assert party['address']
            assert party['address']['street']
            assert party['address']['city']
            assert party['address']['region']
            assert party['address']['postalCode']
            assert party['contact']
            assert party['contact']['name']
            assert party['contact']['areaCode']
            assert party['contact']['phoneNumber']
            assert party['emailAddress']
    else:
        assert not parties