From ee5bc2bc9f61b2afed884b1ff7d11ffebdf6be62 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 11:52:25 -0800 Subject: [PATCH 1/7] Adding name and address fields to routing slips --- ...bd4_adding_name_and_address_columns_to_.py | 44 +++++++++++++++++++ pay-api/src/pay_api/models/routing_slip.py | 24 ++++++++++ .../src/pay_api/services/fas/routing_slip.py | 22 +++++++++- .../tests/unit/models/test_routing_slip.py | 25 ++++++++++- pay-api/tests/utilities/base_test.py | 32 ++++++++++++++ 5 files changed, 144 insertions(+), 3 deletions(-) create mode 100644 pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py diff --git a/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py new file mode 100644 index 000000000..aca4b9cf5 --- /dev/null +++ b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py @@ -0,0 +1,44 @@ +"""Adding name and address columns to routing_slips + +Revision ID: 474917a13bd4 +Revises: 0f02d5964a63 +Create Date: 2024-11-13 09:52:24.121948 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +# Note you may see foreign keys with distribution_codes_history +# For disbursement_distribution_code_id, service_fee_distribution_code_id +# Please ignore those lines and don't include in migration. + +revision = '474917a13bd4' +down_revision = '0f02d5964a63' +branch_labels = None +depends_on = None + + +def upgrade(): + with op.batch_alter_table('routing_slips', schema=None) as batch_op: + batch_op.add_column(sa.Column('name', sa.String(length=50), nullable=False)) + batch_op.add_column(sa.Column('street', sa.String(length=100), nullable=False)) + batch_op.add_column(sa.Column('street_additional', sa.String(length=100), nullable=True)) + batch_op.add_column(sa.Column('city', sa.String(length=50), nullable=False)) + batch_op.add_column(sa.Column('region', sa.String(length=50), nullable=False)) + batch_op.add_column(sa.Column('postal_code', sa.String(length=20), nullable=False)) + batch_op.add_column(sa.Column('country', sa.String(length=50), nullable=False)) + batch_op.add_column(sa.Column('delivery_instructions', sa.String(length=100), nullable=True)) + + +def downgrade(): + with op.batch_alter_table('routing_slips', schema=None) as batch_op: + batch_op.drop_column('name') + batch_op.drop_column('street') + batch_op.drop_column('street_additional') + batch_op.drop_column('city') + batch_op.drop_column('region') + batch_op.drop_column('postal_code') + batch_op.drop_column('country') + batch_op.drop_column('delivery_instructions') diff --git a/pay-api/src/pay_api/models/routing_slip.py b/pay-api/src/pay_api/models/routing_slip.py index fc08ed368..f4fe63602 100644 --- a/pay-api/src/pay_api/models/routing_slip.py +++ b/pay-api/src/pay_api/models/routing_slip.py @@ -71,6 +71,14 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes "updated_by", "updated_name", "updated_on", + "name", + "street", + "street_additional", + "city", + "region", + "postal_code", + "country", + "delivery_instructions" ] } @@ -94,6 +102,14 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes # Allows to create a new receipt in CAS for the same routing slip number. # Earlier versions should be adjusted to zero before increasing the cas_version_suffix. cas_version_suffix = db.Column(db.Integer, default=1) + name = db.Column(db.String(), nullable=False) + street = db.Column(db.String(), nullable=False) + street_additional = db.Column(db.String(), nullable=True) + city = db.Column(db.String(), nullable=False) + region = db.Column(db.String(), nullable=False) + postal_code = db.Column(db.String(), nullable=False) + country = db.Column(db.String(), nullable=False) + delivery_instructions = db.Column(db.String(), nullable=True) payment_account = relationship( PaymentAccount, @@ -355,3 +371,11 @@ class Meta(BaseSchema.Meta): # pylint: disable=too-few-public-methods refund_status = fields.String(data_key="refund_status") parent_number = fields.String(data_key="parent_number") total_usd = fields.Float(data_key="total_usd") + name = fields.String(data_key="name") + street = fields.String(data_key="street") + street_additional = fields.String(data_key="street_additional") + city = fields.String(data_key="city") + region = fields.String(data_key="region") + postal_code = fields.String(data_key="postal_code") + country = fields.String(data_key="country") + delivery_instructions = fields.String(data_key="delivery_instructions") diff --git a/pay-api/src/pay_api/services/fas/routing_slip.py b/pay-api/src/pay_api/services/fas/routing_slip.py index 24449cfff..5bd60d190 100644 --- a/pay-api/src/pay_api/services/fas/routing_slip.py +++ b/pay-api/src/pay_api/services/fas/routing_slip.py @@ -284,11 +284,23 @@ def find_by_number(cls, rs_number: str) -> Dict[str, any]: routing_slip_dict: Dict[str, any] = None routing_slip: RoutingSlipModel = RoutingSlipModel.find_by_number(rs_number) if routing_slip: - routing_slip_schema = RoutingSlipSchema() + routing_slip_schema = RoutingSlipSchema(exclude=( + 'city', 'country', 'delivery_instructions', 'postal_code', 'region', 'street', 'street_additional') + ) routing_slip_dict = routing_slip_schema.dump(routing_slip) routing_slip_dict["allowedStatuses"] = RoutingSlipStatusTransitionService.get_possible_transitions( routing_slip ) + routing_slip_dict["mailingAddress"] = { + "city": routing_slip.city, + "country": routing_slip.country, + "deliveryInstructions": routing_slip.delivery_instructions, + "postalCode": routing_slip.postal_code, + "region": routing_slip.region, + "street": routing_slip.street, + "streetAdditional": routing_slip.street_additional + } + return routing_slip_dict @classmethod @@ -357,6 +369,14 @@ def create(cls, request_json: Dict[str, any], **kwargs): remaining_amount=total, routing_slip_date=string_to_date(request_json.get("routingSlipDate")), total_usd=total_usd, + name=request_json.get("name"), + street=request_json["mailingAddress"].get("street"), + street_additional=request_json["mailingAddress"].get("streetAdditional"), + city=request_json["mailingAddress"].get("city"), + region=request_json["mailingAddress"].get("region"), + postal_code=request_json["mailingAddress"].get("postalCode"), + country=request_json["mailingAddress"].get("country"), + delivery_instructions=request_json["mailingAddress"].get("deliveryInstructions") ).flush() for payment in request_json.get("payments"): diff --git a/pay-api/tests/unit/models/test_routing_slip.py b/pay-api/tests/unit/models/test_routing_slip.py index c8d8042cd..46219678f 100644 --- a/pay-api/tests/unit/models/test_routing_slip.py +++ b/pay-api/tests/unit/models/test_routing_slip.py @@ -32,9 +32,27 @@ def test_routing_slip_find_creation(session): payment_account = factory_payment_account() payment_account.save() - rs = factory_routing_slip(payment_account_id=payment_account.id) + rs = factory_routing_slip( + payment_account_id=payment_account.id, + name="John Doe", + street="123 Main St", + street_additional="Suite 200", + city="Victoria", + region="BC", + postal_code="V8V 3V3", + country="CA", + delivery_instructions="Leave at the door", + ) rs.save() assert rs.id is not None + assert rs.name == "John Doe" + assert rs.street == "123 Main St" + assert rs.street_additional == "Suite 200" + assert rs.city == "Victoria" + assert rs.region == "BC" + assert rs.postal_code == "V8V 3V3" + assert rs.country == "CA" + assert rs.delivery_instructions == "Leave at the door" routing_slip = RoutingSlip() assert routing_slip.find_by_number(rs.number) is not None @@ -77,7 +95,10 @@ def test_routing_slip_usd_creation(session): payment_account = factory_payment_account() payment_account.save() - rs = factory_routing_slip_usd(payment_account_id=payment_account.id, total_usd=50) + rs = factory_routing_slip_usd( + payment_account_id=payment_account.id, + total_usd=50 + ) rs.save() assert rs.id is not None assert rs.total_usd == 50 diff --git a/pay-api/tests/utilities/base_test.py b/pay-api/tests/utilities/base_test.py index b672b3988..bb1ad533d 100644 --- a/pay-api/tests/utilities/base_test.py +++ b/pay-api/tests/utilities/base_test.py @@ -445,6 +445,14 @@ def factory_routing_slip( total: int = 0, remaining_amount: Decimal = 0.0, routing_slip_date=datetime.now(tz=timezone.utc), + name="John Doe", + street="123 Main St", + street_additional=None, + city="Victoria", + region="BC", + postal_code="V8V 3V3", + country="CA", + delivery_instructions=None, ): """Return Factory.""" routing_slip: RoutingSlip = RoutingSlip( @@ -455,6 +463,14 @@ def factory_routing_slip( remaining_amount=Decimal(str(remaining_amount)), created_by="test", routing_slip_date=routing_slip_date, + name=name, + street=street, + street_additional=street_additional, + city=city, + region=region, + postal_code=postal_code, + country=country, + delivery_instructions=delivery_instructions, ) return routing_slip @@ -467,6 +483,14 @@ def factory_routing_slip_usd( remaining_amount: int = 0, routing_slip_date=datetime.now(tz=timezone.utc), total_usd=0, + name="John Doe", + street="123 Main St", + street_additional=None, + city="Victoria", + region="BC", + postal_code="V8V 3V3", + country="CA", + delivery_instructions=None, ): """Return Factory.""" routing_slip: RoutingSlip = RoutingSlip( @@ -478,6 +502,14 @@ def factory_routing_slip_usd( created_by="test", routing_slip_date=routing_slip_date, total_usd=total_usd, + name=name, + street=street, + street_additional=street_additional, + city=city, + region=region, + postal_code=postal_code, + country=country, + delivery_instructions=delivery_instructions, ) return routing_slip From 40f86bb5f5c5591656f5a5b0444b5c37111c4ac7 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 11:56:29 -0800 Subject: [PATCH 2/7] Linting --- pay-api/src/pay_api/models/routing_slip.py | 2 +- pay-api/src/pay_api/services/fas/routing_slip.py | 16 ++++++++++++---- pay-api/tests/unit/models/test_routing_slip.py | 5 +---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pay-api/src/pay_api/models/routing_slip.py b/pay-api/src/pay_api/models/routing_slip.py index f4fe63602..20a96cea7 100644 --- a/pay-api/src/pay_api/models/routing_slip.py +++ b/pay-api/src/pay_api/models/routing_slip.py @@ -78,7 +78,7 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes "region", "postal_code", "country", - "delivery_instructions" + "delivery_instructions", ] } diff --git a/pay-api/src/pay_api/services/fas/routing_slip.py b/pay-api/src/pay_api/services/fas/routing_slip.py index 5bd60d190..ea88ff1ce 100644 --- a/pay-api/src/pay_api/services/fas/routing_slip.py +++ b/pay-api/src/pay_api/services/fas/routing_slip.py @@ -284,8 +284,16 @@ def find_by_number(cls, rs_number: str) -> Dict[str, any]: routing_slip_dict: Dict[str, any] = None routing_slip: RoutingSlipModel = RoutingSlipModel.find_by_number(rs_number) if routing_slip: - routing_slip_schema = RoutingSlipSchema(exclude=( - 'city', 'country', 'delivery_instructions', 'postal_code', 'region', 'street', 'street_additional') + routing_slip_schema = RoutingSlipSchema( + exclude=( + "city", + "country", + "delivery_instructions", + "postal_code", + "region", + "street", + "street_additional", + ) ) routing_slip_dict = routing_slip_schema.dump(routing_slip) routing_slip_dict["allowedStatuses"] = RoutingSlipStatusTransitionService.get_possible_transitions( @@ -298,7 +306,7 @@ def find_by_number(cls, rs_number: str) -> Dict[str, any]: "postalCode": routing_slip.postal_code, "region": routing_slip.region, "street": routing_slip.street, - "streetAdditional": routing_slip.street_additional + "streetAdditional": routing_slip.street_additional, } return routing_slip_dict @@ -376,7 +384,7 @@ def create(cls, request_json: Dict[str, any], **kwargs): region=request_json["mailingAddress"].get("region"), postal_code=request_json["mailingAddress"].get("postalCode"), country=request_json["mailingAddress"].get("country"), - delivery_instructions=request_json["mailingAddress"].get("deliveryInstructions") + delivery_instructions=request_json["mailingAddress"].get("deliveryInstructions"), ).flush() for payment in request_json.get("payments"): diff --git a/pay-api/tests/unit/models/test_routing_slip.py b/pay-api/tests/unit/models/test_routing_slip.py index 46219678f..25a647caf 100644 --- a/pay-api/tests/unit/models/test_routing_slip.py +++ b/pay-api/tests/unit/models/test_routing_slip.py @@ -95,10 +95,7 @@ def test_routing_slip_usd_creation(session): payment_account = factory_payment_account() payment_account.save() - rs = factory_routing_slip_usd( - payment_account_id=payment_account.id, - total_usd=50 - ) + rs = factory_routing_slip_usd(payment_account_id=payment_account.id, total_usd=50) rs.save() assert rs.id is not None assert rs.total_usd == 50 From 1b448ae7b6e92aac8feacd5eb098ad3a5c9b8e76 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 12:06:14 -0800 Subject: [PATCH 3/7] model and migration update --- ...4917a13bd4_adding_name_and_address_columns_to_.py | 12 ++++++------ pay-api/src/pay_api/models/routing_slip.py | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py index aca4b9cf5..e1dcc2b9c 100644 --- a/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py +++ b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py @@ -22,13 +22,13 @@ def upgrade(): with op.batch_alter_table('routing_slips', schema=None) as batch_op: - batch_op.add_column(sa.Column('name', sa.String(length=50), nullable=False)) - batch_op.add_column(sa.Column('street', sa.String(length=100), nullable=False)) + batch_op.add_column(sa.Column('name', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('street', sa.String(length=100), nullable=True)) batch_op.add_column(sa.Column('street_additional', sa.String(length=100), nullable=True)) - batch_op.add_column(sa.Column('city', sa.String(length=50), nullable=False)) - batch_op.add_column(sa.Column('region', sa.String(length=50), nullable=False)) - batch_op.add_column(sa.Column('postal_code', sa.String(length=20), nullable=False)) - batch_op.add_column(sa.Column('country', sa.String(length=50), nullable=False)) + batch_op.add_column(sa.Column('city', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('region', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('postal_code', sa.String(length=20), nullable=True)) + batch_op.add_column(sa.Column('country', sa.String(length=50), nullable=True)) batch_op.add_column(sa.Column('delivery_instructions', sa.String(length=100), nullable=True)) diff --git a/pay-api/src/pay_api/models/routing_slip.py b/pay-api/src/pay_api/models/routing_slip.py index 20a96cea7..cdab9175c 100644 --- a/pay-api/src/pay_api/models/routing_slip.py +++ b/pay-api/src/pay_api/models/routing_slip.py @@ -102,13 +102,13 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes # Allows to create a new receipt in CAS for the same routing slip number. # Earlier versions should be adjusted to zero before increasing the cas_version_suffix. cas_version_suffix = db.Column(db.Integer, default=1) - name = db.Column(db.String(), nullable=False) - street = db.Column(db.String(), nullable=False) + name = db.Column(db.String(), nullable=True) + street = db.Column(db.String(), nullable=True) street_additional = db.Column(db.String(), nullable=True) - city = db.Column(db.String(), nullable=False) - region = db.Column(db.String(), nullable=False) - postal_code = db.Column(db.String(), nullable=False) - country = db.Column(db.String(), nullable=False) + city = db.Column(db.String(), nullable=True) + region = db.Column(db.String(), nullable=True) + postal_code = db.Column(db.String(), nullable=True) + country = db.Column(db.String(), nullable=True) delivery_instructions = db.Column(db.String(), nullable=True) payment_account = relationship( From 72d8e8ec580f01db90965a9c85caaf27981afeb4 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 13:28:20 -0800 Subject: [PATCH 4/7] name to contact_name --- ...13_474917a13bd4_adding_name_and_address_columns_to_.py | 4 ++-- pay-api/src/pay_api/models/routing_slip.py | 6 +++--- pay-api/src/pay_api/services/fas/routing_slip.py | 2 +- pay-api/tests/unit/models/test_routing_slip.py | 4 ++-- pay-api/tests/utilities/base_test.py | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py index e1dcc2b9c..4db6e29ab 100644 --- a/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py +++ b/pay-api/migrations/versions/2024_11_13_474917a13bd4_adding_name_and_address_columns_to_.py @@ -22,7 +22,7 @@ def upgrade(): with op.batch_alter_table('routing_slips', schema=None) as batch_op: - batch_op.add_column(sa.Column('name', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('contact_name', sa.String(length=50), nullable=True)) batch_op.add_column(sa.Column('street', sa.String(length=100), nullable=True)) batch_op.add_column(sa.Column('street_additional', sa.String(length=100), nullable=True)) batch_op.add_column(sa.Column('city', sa.String(length=50), nullable=True)) @@ -34,7 +34,7 @@ def upgrade(): def downgrade(): with op.batch_alter_table('routing_slips', schema=None) as batch_op: - batch_op.drop_column('name') + batch_op.drop_column('contact_name') batch_op.drop_column('street') batch_op.drop_column('street_additional') batch_op.drop_column('city') diff --git a/pay-api/src/pay_api/models/routing_slip.py b/pay-api/src/pay_api/models/routing_slip.py index cdab9175c..940fee714 100644 --- a/pay-api/src/pay_api/models/routing_slip.py +++ b/pay-api/src/pay_api/models/routing_slip.py @@ -71,7 +71,7 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes "updated_by", "updated_name", "updated_on", - "name", + "contact_name", "street", "street_additional", "city", @@ -102,7 +102,7 @@ class RoutingSlip(Audit): # pylint: disable=too-many-instance-attributes # Allows to create a new receipt in CAS for the same routing slip number. # Earlier versions should be adjusted to zero before increasing the cas_version_suffix. cas_version_suffix = db.Column(db.Integer, default=1) - name = db.Column(db.String(), nullable=True) + contact_name = db.Column(db.String(), nullable=True) street = db.Column(db.String(), nullable=True) street_additional = db.Column(db.String(), nullable=True) city = db.Column(db.String(), nullable=True) @@ -371,7 +371,7 @@ class Meta(BaseSchema.Meta): # pylint: disable=too-few-public-methods refund_status = fields.String(data_key="refund_status") parent_number = fields.String(data_key="parent_number") total_usd = fields.Float(data_key="total_usd") - name = fields.String(data_key="name") + contact_name = fields.String(data_key="contact_name") street = fields.String(data_key="street") street_additional = fields.String(data_key="street_additional") city = fields.String(data_key="city") diff --git a/pay-api/src/pay_api/services/fas/routing_slip.py b/pay-api/src/pay_api/services/fas/routing_slip.py index ea88ff1ce..831152751 100644 --- a/pay-api/src/pay_api/services/fas/routing_slip.py +++ b/pay-api/src/pay_api/services/fas/routing_slip.py @@ -377,7 +377,7 @@ def create(cls, request_json: Dict[str, any], **kwargs): remaining_amount=total, routing_slip_date=string_to_date(request_json.get("routingSlipDate")), total_usd=total_usd, - name=request_json.get("name"), + contact_name=request_json.get("contactName"), street=request_json["mailingAddress"].get("street"), street_additional=request_json["mailingAddress"].get("streetAdditional"), city=request_json["mailingAddress"].get("city"), diff --git a/pay-api/tests/unit/models/test_routing_slip.py b/pay-api/tests/unit/models/test_routing_slip.py index 25a647caf..0cf0136d5 100644 --- a/pay-api/tests/unit/models/test_routing_slip.py +++ b/pay-api/tests/unit/models/test_routing_slip.py @@ -34,7 +34,7 @@ def test_routing_slip_find_creation(session): rs = factory_routing_slip( payment_account_id=payment_account.id, - name="John Doe", + contact_name="John Doe", street="123 Main St", street_additional="Suite 200", city="Victoria", @@ -45,7 +45,7 @@ def test_routing_slip_find_creation(session): ) rs.save() assert rs.id is not None - assert rs.name == "John Doe" + assert rs.contact_name == "John Doe" assert rs.street == "123 Main St" assert rs.street_additional == "Suite 200" assert rs.city == "Victoria" diff --git a/pay-api/tests/utilities/base_test.py b/pay-api/tests/utilities/base_test.py index bb1ad533d..79930d613 100644 --- a/pay-api/tests/utilities/base_test.py +++ b/pay-api/tests/utilities/base_test.py @@ -445,7 +445,7 @@ def factory_routing_slip( total: int = 0, remaining_amount: Decimal = 0.0, routing_slip_date=datetime.now(tz=timezone.utc), - name="John Doe", + contact_name="John Doe", street="123 Main St", street_additional=None, city="Victoria", @@ -463,7 +463,7 @@ def factory_routing_slip( remaining_amount=Decimal(str(remaining_amount)), created_by="test", routing_slip_date=routing_slip_date, - name=name, + contact_name=contact_name, street=street, street_additional=street_additional, city=city, @@ -483,7 +483,7 @@ def factory_routing_slip_usd( remaining_amount: int = 0, routing_slip_date=datetime.now(tz=timezone.utc), total_usd=0, - name="John Doe", + contact_name="John Doe", street="123 Main St", street_additional=None, city="Victoria", @@ -502,7 +502,7 @@ def factory_routing_slip_usd( created_by="test", routing_slip_date=routing_slip_date, total_usd=total_usd, - name=name, + contact_name=contact_name, street=street, street_additional=street_additional, city=city, From 100a0b47be7a76c8c5205523b74128b8ec9439d4 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 13:49:32 -0800 Subject: [PATCH 5/7] Test fix --- .../services/test_routing_slip_service.py | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/pay-api/tests/unit/services/test_routing_slip_service.py b/pay-api/tests/unit/services/test_routing_slip_service.py index a8b0b6a49..2ac347b0c 100644 --- a/pay-api/tests/unit/services/test_routing_slip_service.py +++ b/pay-api/tests/unit/services/test_routing_slip_service.py @@ -70,6 +70,14 @@ def test_create_routing_slip(session, staff_user_mock): "paidAmount": 100, } ], + "contactName": "John Doe", + "mailingAddress": { + "street": "123 Main St", + "city": "Victoria", + "region": "BC", + "postalCode": "V8V 3V3", + "country": "CA", + }, } rs = RoutingSlip_service.create(routing_slip_payload) @@ -101,6 +109,14 @@ def test_create_routing_slip_usd_one_of_payments(session, staff_user_mock): "paidUsdAmount": 80, }, ], + "contactName": "John Doe", + "mailingAddress": { + "street": "123 Main St", + "city": "Victoria", + "region": "BC", + "postalCode": "V8V 3V3", + "country": "CA", + }, } rs = RoutingSlip_service.create(routing_slip_payload) @@ -134,6 +150,14 @@ def test_create_routing_slip_usd_both_payments(session, staff_user_mock): "paidUsdAmount": 80, }, ], + "contactName": "John Doe", + "mailingAddress": { + "street": "123 Main St", + "city": "Victoria", + "region": "BC", + "postalCode": "V8V 3V3", + "country": "CA", + }, } rs = RoutingSlip_service.create(routing_slip_payload) From f226f84ad2af10c70764512051f64055ade1ba7f Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 14:17:31 -0800 Subject: [PATCH 6/7] mailing address fix --- pay-api/src/pay_api/services/fas/routing_slip.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pay-api/src/pay_api/services/fas/routing_slip.py b/pay-api/src/pay_api/services/fas/routing_slip.py index 831152751..2e1d4ee06 100644 --- a/pay-api/src/pay_api/services/fas/routing_slip.py +++ b/pay-api/src/pay_api/services/fas/routing_slip.py @@ -368,6 +368,7 @@ def create(cls, request_json: Dict[str, any], **kwargs): sum(float(payment.get("paidUsdAmount", 0)) for payment in request_json.get("payments")) ) + mailing_address = request_json['mailingAddress', {}] # Create a routing slip record. routing_slip: RoutingSlipModel = RoutingSlipModel( number=rs_number, @@ -378,13 +379,13 @@ def create(cls, request_json: Dict[str, any], **kwargs): routing_slip_date=string_to_date(request_json.get("routingSlipDate")), total_usd=total_usd, contact_name=request_json.get("contactName"), - street=request_json["mailingAddress"].get("street"), - street_additional=request_json["mailingAddress"].get("streetAdditional"), - city=request_json["mailingAddress"].get("city"), - region=request_json["mailingAddress"].get("region"), - postal_code=request_json["mailingAddress"].get("postalCode"), - country=request_json["mailingAddress"].get("country"), - delivery_instructions=request_json["mailingAddress"].get("deliveryInstructions"), + street=mailing_address.get("street"), + street_additional=mailing_address.get("streetAdditional"), + city=mailing_address.get("city"), + region=mailing_address.get("region"), + postal_code=mailing_address.get("postalCode"), + country=mailing_address.get("country"), + delivery_instructions=mailing_address.get("deliveryInstructions"), ).flush() for payment in request_json.get("payments"): From 31f6e9e7ad3de24f9f2e39a56c16e9e077a51e28 Mon Sep 17 00:00:00 2001 From: Rodrigo Barraza <hello@rod.dev> Date: Wed, 13 Nov 2024 14:24:54 -0800 Subject: [PATCH 7/7] test fix --- pay-api/src/pay_api/services/fas/routing_slip.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pay-api/src/pay_api/services/fas/routing_slip.py b/pay-api/src/pay_api/services/fas/routing_slip.py index 2e1d4ee06..1f5f7005f 100644 --- a/pay-api/src/pay_api/services/fas/routing_slip.py +++ b/pay-api/src/pay_api/services/fas/routing_slip.py @@ -368,7 +368,7 @@ def create(cls, request_json: Dict[str, any], **kwargs): sum(float(payment.get("paidUsdAmount", 0)) for payment in request_json.get("payments")) ) - mailing_address = request_json['mailingAddress', {}] + mailing_address = request_json.get('mailingAddress', {}) # Create a routing slip record. routing_slip: RoutingSlipModel = RoutingSlipModel( number=rs_number, @@ -379,13 +379,13 @@ def create(cls, request_json: Dict[str, any], **kwargs): routing_slip_date=string_to_date(request_json.get("routingSlipDate")), total_usd=total_usd, contact_name=request_json.get("contactName"), - street=mailing_address.get("street"), - street_additional=mailing_address.get("streetAdditional"), - city=mailing_address.get("city"), - region=mailing_address.get("region"), - postal_code=mailing_address.get("postalCode"), - country=mailing_address.get("country"), - delivery_instructions=mailing_address.get("deliveryInstructions"), + street=mailing_address.get("street", ""), + street_additional=mailing_address.get("streetAdditional", ""), + city=mailing_address.get("city", ""), + region=mailing_address.get("region", ""), + postal_code=mailing_address.get("postalCode", ""), + country=mailing_address.get("country", ""), + delivery_instructions=mailing_address.get("deliveryInstructions", ""), ).flush() for payment in request_json.get("payments"):