From 9abd9cc133c538b00c346823cb26c81667430282 Mon Sep 17 00:00:00 2001 From: Michael Ossig Date: Fri, 16 May 2025 12:58:43 -0400 Subject: [PATCH 1/2] allows for string or full payload when enrolling entity in subscription --- method/resources/Entities/Subscriptions.py | 4 +++- setup.py | 2 +- test/resources/Entity_test.py | 8 ++------ 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/method/resources/Entities/Subscriptions.py b/method/resources/Entities/Subscriptions.py index 6a53e7b..07a2fae 100644 --- a/method/resources/Entities/Subscriptions.py +++ b/method/resources/Entities/Subscriptions.py @@ -54,7 +54,9 @@ def retrieve(self, sub_id: str) -> MethodResponse[EntitySubscriptionResponseOpts def list(self) -> MethodResponse[EntitySubscriptionListResponse]: return super(EntitySubscriptionsResource, self)._list() - def create(self, opts: EntitySubscriptionCreateOpts) -> MethodResponse[EntitySubscriptionResponseOpts]: + def create(self, opts: EntitySubscriptionCreateOpts | EntitySubscriptionNamesLiterals) -> MethodResponse[EntitySubscriptionResponseOpts]: + if isinstance(opts, str) and opts in ('connect', 'credit_score', 'attribute'): + opts = {'enroll': opts} return super(EntitySubscriptionsResource, self)._create(opts) def delete(self, sub_id: str) -> MethodResponse[EntitySubscriptionResponseOpts]: diff --git a/setup.py b/setup.py index 88c0cc7..03ebf19 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name='method-python', - version='1.1.13', + version='1.2.0', description='Python library for the Method API', long_description='Python library for the Method API', long_description_content_type='text/x-rst', diff --git a/test/resources/Entity_test.py b/test/resources/Entity_test.py index a096b7c..c5aa41a 100644 --- a/test/resources/Entity_test.py +++ b/test/resources/Entity_test.py @@ -858,9 +858,7 @@ def test_retrieve_entity_product(): def test_create_entity_connect_subscription(): global entities_create_connect_subscription_response - entities_create_connect_subscription_response = method.entities(entities_create_response['id']).subscriptions.create({ - 'enroll': 'connect' - }) + entities_create_connect_subscription_response = method.entities(entities_create_response['id']).subscriptions.create('connect') expect_results: EntitySubscription = { 'id': entities_create_connect_subscription_response['id'], @@ -877,9 +875,7 @@ def test_create_entity_connect_subscription(): def test_create_entity_credit_score_subscription(): global entities_create_credit_score_subscription_response - entities_create_credit_score_subscription_response = method.entities(entities_create_response['id']).subscriptions.create({ - 'enroll': 'credit_score' - }) + entities_create_credit_score_subscription_response = method.entities(entities_create_response['id']).subscriptions.create('credit_score') expect_results: EntitySubscription = { 'id': entities_create_credit_score_subscription_response['id'], From 26b98fcd7c5aed5dee53333c8ef9dc012793a568 Mon Sep 17 00:00:00 2001 From: Michael Ossig Date: Mon, 19 May 2025 12:52:02 -0400 Subject: [PATCH 2/2] remove strict string checks --- method/resources/Entities/Subscriptions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/method/resources/Entities/Subscriptions.py b/method/resources/Entities/Subscriptions.py index 07a2fae..76ee8bc 100644 --- a/method/resources/Entities/Subscriptions.py +++ b/method/resources/Entities/Subscriptions.py @@ -55,7 +55,7 @@ def list(self) -> MethodResponse[EntitySubscriptionListResponse]: return super(EntitySubscriptionsResource, self)._list() def create(self, opts: EntitySubscriptionCreateOpts | EntitySubscriptionNamesLiterals) -> MethodResponse[EntitySubscriptionResponseOpts]: - if isinstance(opts, str) and opts in ('connect', 'credit_score', 'attribute'): + if isinstance(opts, str): opts = {'enroll': opts} return super(EntitySubscriptionsResource, self)._create(opts)