def create_residence_address( x_request_id: str, residence_data: QuintoAndarSchema ): """ Function responsible for send the data to create of residence address information. Parameters: x_request_id: str residence_data: QuintoAndarSchema Returns: """ tableNameSchema = TableNameSchema() data = { "street": residence_data.street_name, "numberResidence": None, "district": residence_data.district_name, "state": residence_data.state_name, "country": "Brasil", "CEP": None, "complement": None, } address_data = create( x_request_id=x_request_id, data=data, table_name=tableNameSchema.residence_address, ) address_data = dict(address_data) if address_data else {} return address_data.get("id")
def create_residence_features( x_request_id: str, residence_id: int, residence_feature_key: str, residence_feature_value: any, ) -> None: """ Function responsible for create residence feature data. Parameters: x_request_id: str residence_id: int residence_feature_key: str residence_feature_value: any Returns: None """ table_name = TableNameSchema() data = { "ResidenceId": residence_id, "key": residence_feature_key, "value": str(residence_feature_value), } residence_feature = create( x_request_id=x_request_id, data=data, table_name=table_name.residence_features, ) send_log( x_request_id=x_request_id, message= f"Inserted in database the follow residence values {residence_feature}...", )
def create_residence( x_request_id: str, residence_address_id: int, residence_data: QuintoAndarSchema, ) -> int: """ Function responsible for create residence in database. Parameters: x_request_id: str residence_address_id: int residence_data: QuintoAndarSchema Returns: str """ table_name = TableNameSchema() data = { "residenceCode": residence_data.residence_id, "source": residence_data.source, "urlSource": residence_data.link_apartment, "numberRooms": residence_data.number_rooms, "numberBathrooms": residence_data.number_bathrooms, "numberParkingSpace": residence_data.number_parking_space, "typeBuilding": residence_data.type_building, "sizeResidence": residence_data.size_residence, "ResidenceAddressId": residence_address_id, } residence = create(x_request_id=x_request_id, data=data, table_name=table_name.residence) residence = dict(residence) if residence else {} return residence.get("id")
def create_residence_values( x_request_id: str, residence_id: int, residence_data: QuintoAndarSchema ) -> None: """ Function responsible for create residence values. Parameters: x_request_id: str residence_id: int residence_data: QuintoAndarSchema Returns: int """ try: table_name = TableNameSchema() data = { "ResidenceId": residence_id, "price": float(residence_data.rent_price_without_tax), "condominiumTax": float(residence_data.condominium_tax), "houseTax": float(residence_data.house_tax), "fireInsurence": float(residence_data.fire_insurance), "serviceTax": float(residence_data.service_tax), "totalRentPrice": float(residence_data.total_rent_price), } residence_values = create( x_request_id=x_request_id, data=data, table_name=table_name.residence_values, ) send_log( x_request_id=x_request_id, message=f"Inserted in database the follow residence values {residence_values}...", ) except ( TimeoutError, SyntaxError, IndexError, AttributeError, ) as exception: return error_handler( x_request_id=x_request_id, exception=exception, _msg="Exception occurred in create_residence_value", )
def test_create(mocker): """ Should return data created in database from residence functions """ data_mock = {"data": {"id": 1, "name": "teste"}} mocker_api_integration = mocker.patch( "app.services.backoffice_services.create.create.api_integration", return_value=data_mock, ) assert ( create(x_request_id="", data={}, table_name="table_name") == data_mock["data"] ) assert mocker_api_integration.call_count == 1
def test_error_handler(mocker): """ Should call error_handler in case of some error """ mocker_api_integration = mocker.patch( "app.services.backoffice_services.create.create.api_integration", return_value={}, ) mocker_error_handler = mocker.patch( "app.services.backoffice_services.create.create.error_handler", return_value=None, ) assert create(x_request_id="", data={}, table_name="table_name") is None assert mocker_api_integration.call_count == 1 assert mocker_error_handler.call_count == 1