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)
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)
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
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)
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
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
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
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