Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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}...",
    )
Ejemplo n.º 3
0
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")
Ejemplo n.º 4
0
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",
        )
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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