Skip to content

Commit 8885032

Browse files
author
Keryc Diaz
authored
Commissions with related transactions (#65)
* tests comissions * fix test * fix entry model * fix relatedtransaction * commission end * change version valid * fix entry model * fix Commission * use mapper in commission * update version * fix end * change id * rebase and change version cuenca-validations
1 parent 8cdb4c7 commit 8885032

9 files changed

+470
-4
lines changed

cuenca/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
'ApiKey',
44
'Account',
55
'BalanceEntry',
6+
'Commission',
67
'Deposit',
78
'Transfer',
89
'WhatsappTransfer',
@@ -15,6 +16,7 @@
1516
Account,
1617
ApiKey,
1718
BalanceEntry,
19+
Commission,
1820
Deposit,
1921
Transfer,
2022
WhatsappTransfer,

cuenca/resources/commissions.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,31 @@
1-
from typing import ClassVar, Optional
1+
from typing import ClassVar, Optional, cast
22

3+
from cuenca_validations.types import (
4+
CommissionType,
5+
EntryType,
6+
RelatedTransaction,
7+
)
38
from pydantic.dataclasses import dataclass
49

10+
from cuenca import resources
11+
512
from .base import Transaction
13+
from .resources import retrieve_uri
14+
15+
mapper = {CommissionType.cash_deposit: EntryType.credit}
616

717

818
@dataclass
919
class Commission(Transaction):
1020
_resource: ClassVar = 'commissions'
1121

12-
related_transaction_uri: Optional[str]
22+
type: CommissionType
23+
related_transaction_uri: Optional[RelatedTransaction]
24+
25+
@property # type: ignore
26+
def related_transaction(self):
27+
rt = self.related_transaction_uri
28+
if not rt:
29+
return None
30+
resource = getattr(resources, rt.get_model())
31+
return cast(resource, retrieve_uri(rt)) if resource else None

cuenca/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__version__ = '0.3.2'
1+
__version__ = '0.3.4'
22
CLIENT_VERSION = __version__
33
API_VERSION = '2020-03-19'

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
requests==2.24.0
2-
cuenca-validations==0.5.7
2+
cuenca-validations==0.6.2
33
dataclasses>=0.7;python_version<"3.7"
44
aws-requests-auth==0.4.3
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
interactions:
2+
- request:
3+
body: null
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate
9+
Authorization:
10+
- DUMMY
11+
Connection:
12+
- keep-alive
13+
User-Agent:
14+
- cuenca-python/0.3.2
15+
X-Cuenca-Api-Version:
16+
- '2020-03-19'
17+
x-amz-content-sha256:
18+
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
19+
x-amz-date:
20+
- 20201001T182731Z
21+
method: GET
22+
uri: https://sandbox.cuenca.com/commissions/COXXX
23+
response:
24+
body:
25+
string: '{"id":"COXXX","created_at":"2020-09-24T00:29:34.830000","user_id":"US2qz3mrAomlP8LWG106tILW","amount":25000,"status":"created","descriptor":"Comisi\u00f3n
26+
(card_request)", "type": "cash_deposit","related_transaction_uri":null}'
27+
headers:
28+
Connection:
29+
- keep-alive
30+
Content-Length:
31+
- '220'
32+
Content-Type:
33+
- application/json
34+
Date:
35+
- Thu, 01 Oct 2020 18:27:35 GMT
36+
Via:
37+
- 1.1 73f86570b09a38dfaa856857b5578e7e.cloudfront.net (CloudFront)
38+
X-Amz-Cf-Id:
39+
- vytdtvve_zN6caN21ZDTayVxVQ2-d1rDKmoG02Ut1V04G2SOrxtzfg==
40+
X-Amz-Cf-Pop:
41+
- DFW55-C1
42+
X-Amzn-Trace-Id:
43+
- Root=1-5f761f95-7f1856a72145666d5107c55e;Sampled=0
44+
X-Cache:
45+
- Miss from cloudfront
46+
x-amz-apigw-id:
47+
- TvnfVGIEIAMFa_Q=
48+
x-amzn-RequestId:
49+
- ab9b3780-d7c6-4628-98cf-5553b3de80a1
50+
status:
51+
code: 200
52+
message: OK
53+
version: 1
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
interactions:
2+
- request:
3+
body: null
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate
9+
Authorization:
10+
- DUMMY
11+
Connection:
12+
- keep-alive
13+
User-Agent:
14+
- cuenca-python/0.3.2
15+
X-Cuenca-Api-Version:
16+
- '2020-03-19'
17+
x-amz-content-sha256:
18+
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
19+
x-amz-date:
20+
- 20201001T185704Z
21+
method: GET
22+
uri: https://sandbox.cuenca.com/commissions/COXXX
23+
response:
24+
body:
25+
string: '{"id":"COXXX","created_at":"2020-09-30T19:38:33.361000","user_id":"USXXX","amount":1000,"status":"succeeded","descriptor":"Comisi\u00f3n
26+
(cash_deposit)", "type": "cash_deposit","related_transaction_uri":"/deposits/CDXXX"}'
27+
headers:
28+
Connection:
29+
- keep-alive
30+
Content-Length:
31+
- '254'
32+
Content-Type:
33+
- application/json
34+
Date:
35+
- Thu, 01 Oct 2020 18:57:04 GMT
36+
Via:
37+
- 1.1 73f86570b09a38dfaa856857b5578e7e.cloudfront.net (CloudFront)
38+
X-Amz-Cf-Id:
39+
- qhDyaKeW0Ocibu9DAsgRAOGZDLKAh4Ch8h7bgUOzErlF2enEXVrNLw==
40+
X-Amz-Cf-Pop:
41+
- DFW55-C1
42+
X-Amzn-Trace-Id:
43+
- Root=1-5f762680-5dbf128e0175d0637dc90d9b;Sampled=0
44+
X-Cache:
45+
- Miss from cloudfront
46+
x-amz-apigw-id:
47+
- Tvr0KGBuoAMFvDw=
48+
x-amzn-RequestId:
49+
- f2476afc-8fb5-491f-ad79-2f365e55797d
50+
status:
51+
code: 200
52+
message: OK
53+
- request:
54+
body: null
55+
headers:
56+
Accept:
57+
- '*/*'
58+
Accept-Encoding:
59+
- gzip, deflate
60+
Authorization:
61+
- DUMMY
62+
Connection:
63+
- keep-alive
64+
User-Agent:
65+
- cuenca-python/0.3.2
66+
X-Cuenca-Api-Version:
67+
- '2020-03-19'
68+
x-amz-content-sha256:
69+
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
70+
x-amz-date:
71+
- 20201001T185705Z
72+
method: GET
73+
uri: https://sandbox.cuenca.com/deposits/CDXXX
74+
response:
75+
body:
76+
string: '{"id":"CDXXX","created_at":"2020-09-30T19:38:29.234000","user_id":"USXXX","amount":2002,"status":"succeeded","descriptor":"Deposito
77+
v\u00eda paynet auth 648695","source_uri":null,"network":"cash","tracking_key":null}'
78+
headers:
79+
Connection:
80+
- keep-alive
81+
Content-Length:
82+
- '254'
83+
Content-Type:
84+
- application/json
85+
Date:
86+
- Thu, 01 Oct 2020 18:57:05 GMT
87+
Via:
88+
- 1.1 73f86570b09a38dfaa856857b5578e7e.cloudfront.net (CloudFront)
89+
X-Amz-Cf-Id:
90+
- zWYNKGEjQ8P0PF_azgGX01euUv3Jl0T4dejiLXjDJdvQ4_FvG81F2A==
91+
X-Amz-Cf-Pop:
92+
- DFW55-C1
93+
X-Amzn-Trace-Id:
94+
- Root=1-5f762681-2c39d73d0760e8f37ffbe378;Sampled=0
95+
X-Cache:
96+
- Miss from cloudfront
97+
x-amz-apigw-id:
98+
- Tvr0OFKJIAMFYng=
99+
x-amzn-RequestId:
100+
- 1e7a83a6-88a1-443d-a175-1f35152b6cda
101+
status:
102+
code: 200
103+
message: OK
104+
version: 1
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
interactions:
2+
- request:
3+
body: null
4+
headers:
5+
Accept:
6+
- '*/*'
7+
Accept-Encoding:
8+
- gzip, deflate
9+
Authorization:
10+
- DUMMY
11+
Connection:
12+
- keep-alive
13+
User-Agent:
14+
- cuenca-python/0.3.2
15+
X-Cuenca-Api-Version:
16+
- '2020-03-19'
17+
x-amz-content-sha256:
18+
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
19+
x-amz-date:
20+
- 20201001T185704Z
21+
method: GET
22+
uri: https://sandbox.cuenca.com/commissions/COXXX
23+
response:
24+
body:
25+
string: '{"id":"COXXX","created_at":"2020-09-30T19:38:33.361000","user_id":"USXXX","amount":1000,"status":"succeeded","descriptor":"Comisi\u00f3n
26+
(cash_transfer)", "type": "cash_deposit","related_transaction_uri":"/transfers/SP5XXX"}'
27+
headers:
28+
Connection:
29+
- keep-alive
30+
Content-Length:
31+
- '254'
32+
Content-Type:
33+
- application/json
34+
Date:
35+
- Thu, 01 Oct 2020 18:57:04 GMT
36+
Via:
37+
- 1.1 73f86570b09a38dfaa856857b5578e7e.cloudfront.net (CloudFront)
38+
X-Amz-Cf-Id:
39+
- qhDyaKeW0Ocibu9DAsgRAOGZDLKAh4Ch8h7bgUOzErlF2enEXVrNLw==
40+
X-Amz-Cf-Pop:
41+
- DFW55-C1
42+
X-Amzn-Trace-Id:
43+
- Root=1-5f762680-5dbf128e0175d0637dc90d9b;Sampled=0
44+
X-Cache:
45+
- Miss from cloudfront
46+
x-amz-apigw-id:
47+
- Tvr0KGBuoAMFvDw=
48+
x-amzn-RequestId:
49+
- f2476afc-8fb5-491f-ad79-2f365e55797d
50+
status:
51+
code: 200
52+
message: OK
53+
- request:
54+
body: null
55+
headers:
56+
Accept:
57+
- '*/*'
58+
Accept-Encoding:
59+
- gzip, deflate
60+
Authorization:
61+
- DUMMY
62+
Connection:
63+
- keep-alive
64+
User-Agent:
65+
- cuenca-python/0.3.2
66+
X-Cuenca-Api-Version:
67+
- '2020-03-19'
68+
x-amz-content-sha256:
69+
- e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
70+
x-amz-date:
71+
- 20201001T185705Z
72+
method: GET
73+
uri: https://sandbox.cuenca.com/transfers/SP5XXX
74+
response:
75+
body:
76+
string: '{"id":"SP5XXX","created_at":"2020-05-08T23:12:25.042000","updated_at":"2020-05-08T23:12:28.854000","account_number":"646180157013244941","recipient_name":"test
77+
85d91ea6-76b6-49ab-913b-0481e8df7379","amount":8888,"descriptor":"lambda","idempotency_key":"b2bf01cb-da5f-4a42-9462-23078b81b6ea","status":"failed","network":"spei","destination_uri":null,"tracking_key":null,"user_id":"USXXX"}'
78+
headers:
79+
Connection:
80+
- keep-alive
81+
Content-Length:
82+
- '254'
83+
Content-Type:
84+
- application/json
85+
Date:
86+
- Thu, 01 Oct 2020 18:57:05 GMT
87+
Via:
88+
- 1.1 73f86570b09a38dfaa856857b5578e7e.cloudfront.net (CloudFront)
89+
X-Amz-Cf-Id:
90+
- zWYNKGEjQ8P0PF_azgGX01euUv3Jl0T4dejiLXjDJdvQ4_FvG81F2A==
91+
X-Amz-Cf-Pop:
92+
- DFW55-C1
93+
X-Amzn-Trace-Id:
94+
- Root=1-5f762681-2c39d73d0760e8f37ffbe378;Sampled=0
95+
X-Cache:
96+
- Miss from cloudfront
97+
x-amz-apigw-id:
98+
- Tvr0OFKJIAMFYng=
99+
x-amzn-RequestId:
100+
- 1e7a83a6-88a1-443d-a175-1f35152b6cda
101+
status:
102+
code: 200
103+
message: OK
104+
version: 1

0 commit comments

Comments
 (0)