Skip to content

Commit fa19958

Browse files
committed
Add support for disconnecting subscriptions.
1 parent 9d376e3 commit fa19958

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,18 @@ chartmogul.Customer.connectSubscriptions(config, uuid='cus_5915ee5a-babd-406b-b8
150150
}
151151
]
152152
})
153+
chartmogul.Customer.disconnectSubscriptions(config, uuid='cus_5915ee5a-babd-406b-b8ce-d207133fb4cb', data={
154+
'subscriptions': [
155+
{
156+
"data_source_uuid": "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
157+
"external_id": "d1c0c885-add0-48db-8fa9-0bdf5017d6b0"
158+
},
159+
{
160+
"data_source_uuid": "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
161+
"external_id": "9db5f4a1-1695-44c0-8bd4-de7ce4d0f1d4"
162+
}
163+
]
164+
})
153165
chartmogul.Customer.contacts(config, uuid='cus_5915ee5a-babd-406b-b8ce-d207133fb4cb', cursor='aabbcc', per_page=20)
154166
chartmogul.Customer.createContact(config, uuid='cus_5915ee5a-babd-406b-b8ce-d207133fb4cb', data={})
155167
chartmogul.Customer.notes(config, uuid='cus_5915ee5a-babd-406b-b8ce-d207133fb4cb', cursor='aabbcc', per_page=20)

chartmogul/api/customer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ def make(self, data, **kwargs):
8282
Customer.connectSubscriptions = Customer._method(
8383
"create", "post", "/customers/{uuid}/connect_subscriptions"
8484
)
85+
Customer.disconnectSubscriptions = Customer._method(
86+
"create", "post", "/customers/{uuid}/disconnect_subscriptions"
87+
)
8588
Customer.contacts = Contact._method("all", "get", "/customers/{uuid}/contacts", useCallerClass=True)
8689
Customer.createContact = Contact._method(
8790
"create", "post", "/customers/{uuid}/contacts", useCallerClass=True

chartmogul/api/transaction.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class _Schema(Schema):
1616
date = fields.DateTime()
1717
result = fields.String()
1818
amount_in_cents = fields.Int(allow_none=True)
19+
transaction_fees_in_cents = fields.Int(allow_none=True)
1920

2021
@post_load
2122
def make(self, data, **kwargs):

test/api/test_customer.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,6 +503,35 @@ def test_connectSubscriptions(self, mock_requests):
503503
self.assertEqual(mock_requests.last_request.json(), jsonRequest)
504504
self.assertEqual(result, None)
505505

506+
@requests_mock.mock()
507+
def test_disconnectSubscriptions(self, mock_requests):
508+
mock_requests.register_uri(
509+
"POST",
510+
"https://api.chartmogul.com/v1/customers/cus_5915ee5a-babd-406b-b8ce-d207133fb4cb/disconnect_subscriptions",
511+
status_code=202,
512+
)
513+
514+
jsonRequest = {
515+
"subscriptions": [
516+
{
517+
"data_source_uuid": "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
518+
"external_id": "d1c0c885-add0-48db-8fa9-0bdf5017d6b0",
519+
},
520+
{
521+
"data_source_uuid": "ds_ade45e52-47a4-231a-1ed2-eb6b9e541213",
522+
"external_id": "9db5f4a1-1695-44c0-8bd4-de7ce4d0f1d4",
523+
},
524+
]
525+
}
526+
config = Config("token")
527+
result = Customer.disconnectSubscriptions(
528+
config, uuid="cus_5915ee5a-babd-406b-b8ce-d207133fb4cb", data=jsonRequest
529+
).get()
530+
self.assertEqual(mock_requests.call_count, 1, "expected call")
531+
self.assertEqual(mock_requests.last_request.qs, {})
532+
self.assertEqual(mock_requests.last_request.json(), jsonRequest)
533+
self.assertEqual(result, None)
534+
506535
@requests_mock.mock()
507536
def test_modify_uuid_missing(self, mock_requests):
508537
mock_requests.register_uri(

0 commit comments

Comments
 (0)