-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Split and SplitReceiver resources
- Loading branch information
1 parent
58314d5
commit a167e9f
Showing
20 changed files
with
907 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from .__split import get, query, page | ||
from .log.__log import Log | ||
from . import log |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
from ..utils import rest | ||
from starkcore.utils.resource import Resource | ||
from starkcore.utils.checks import check_datetime, check_date | ||
|
||
|
||
class Split(Resource): | ||
|
||
"""# Split object | ||
When you initialize a Split, the entity will not be automatically | ||
created in the Stark Bank API. The 'create' function sends the objects | ||
to the Stark Bank API and returns the list of created objects. | ||
## Parameters (required): | ||
- amount [int]: value to send to receivers. ex: 1000 (= R$ 10.00) | ||
- receiver_id [string]: split receiver unique id. ex: "5656565656565656" | ||
## Attributes (return-only): | ||
- id [string]: unique id returned when split is created. ex: "5656565656565656" | ||
- source [string]: source receivable which generated this split object. ex: "5656565656565656" | ||
- external_id [string]: unique id, generated by the system, to avoid duplicated splits. ex: "invoice/1234/receiver/5678" | ||
- tags [list of strings, default None]: list of strings for tagging | ||
- scheduled [datetime.date, datetime.datetime or string, default now]: payment scheduled date or datetime. ex: datetime.datetime(2020, 3, 10, 15, 17, 3) | ||
- status [string]: current payment status. ex: "success" or "failed" | ||
- created [datetime.datetime]: creation datetime for the payment. ex: datetime.datetime(2020, 3, 10, 10, 30, 0, 0) | ||
- updated [datetime.datetime]: update datetime for the payment. ex: datetime.datetime(2020, 3, 10, 10, 30, 0, 0) | ||
""" | ||
|
||
def __init__(self, amount, receiver_id, id=None, source=None, external_id=None, | ||
tags=None, scheduled=None, status=None, created=None, updated=None): | ||
Resource.__init__(self, id=id) | ||
|
||
self.amount = amount | ||
self.receiver_id = receiver_id | ||
self.source = source | ||
self.external_id = external_id | ||
self.tags = tags | ||
self.scheduled = check_datetime(scheduled) | ||
self.status = status | ||
self.created = check_datetime(created) | ||
self.updated = check_datetime(updated) | ||
|
||
|
||
_resource = {"class": Split, "name": "Split"} | ||
|
||
|
||
def get(id, user=None): | ||
"""# Retrieve a specific Split | ||
Receive a single Split object previously created by the Stark Bank API by its id | ||
## Parameters (required): | ||
- id [string]: object unique id. ex: "5656565656565656" | ||
## Parameters (optional): | ||
- user [Organization/Project object, default None]: Organization or Project object. Not necessary if starkbank.user was set before function call | ||
## Return: | ||
- Split object with updated attributes | ||
""" | ||
return rest.get_id(resource=_resource, id=id, user=user) | ||
|
||
|
||
def query(limit=None, after=None, before=None, tags=None, ids=None, receiver_ids=None, status=None, user=None): | ||
"""# Retrieve Splits | ||
Receive a generator of Split objects previously created in the Stark Bank API | ||
## Parameters (optional): | ||
- limit [integer, default None]: maximum number of objects to be retrieved. Unlimited if None. ex: 35 | ||
- after [datetime.date or string, default None] date filter for objects created only after specified date. ex: datetime.date(2020, 3, 10) | ||
- before [datetime.date or string, default None] date filter for objects created only before specified date. ex: datetime.date(2020, 3, 10) | ||
- tags [list of strings, default None]: tags to filter retrieved objects. ex: ["tony", "stark"] | ||
- ids [list of strings, default None]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"] | ||
- receiver_ids [list of strings, default None]: list of receiver ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"] | ||
- status [string, default None]: filter for status of retrieved objects. ex: "success" | ||
- user [Organization/Project object, default None]: Organization or Project object. Not necessary if starkbank.user was set before function call | ||
## Return: | ||
- generator of Split objects with updated attributes | ||
""" | ||
return rest.get_stream( | ||
resource=_resource, | ||
limit=limit, | ||
after=check_date(after), | ||
before=check_date(before), | ||
tags=tags, | ||
ids=ids, | ||
receiver_ids=receiver_ids, | ||
status=status, | ||
user=user, | ||
) | ||
|
||
|
||
def page(cursor=None, after=None, before=None, tags=None, ids=None, receiver_ids=None, status=None, limit=None, user=None): | ||
"""# Retrieve paged Splits | ||
Receive a list of up to 100 Split objects previously created in the Stark Bank API and the cursor to the next page. | ||
Use this function instead of query if you want to manually page your requests. | ||
## Parameters (optional): | ||
- cursor [string, default None]: cursor returned on the previous page function call | ||
- limit [integer, default 100]: maximum number of objects to be retrieved. It must be an integer between 1 and 100. ex: 50 | ||
- after [datetime.date or string, default None] date filter for objects created only after specified date. ex: datetime.date(2020, 3, 10) | ||
- before [datetime.date or string, default None] date filter for objects created only before specified date. ex: datetime.date(2020, 3, 10) | ||
- tags [list of strings, default None]: tags to filter retrieved objects. ex: ["tony", "stark"] | ||
- ids [list of strings, default None]: list of ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"] | ||
- receiver_ids [list of strings, default None]: list of receiver ids to filter retrieved objects. ex: ["5656565656565656", "4545454545454545"] | ||
- status [string, default None]: filter for status of retrieved objects. ex: "success" | ||
- user [Organization/Project object, default None]: Organization or Project object. Not necessary if starkbank.user was set before function call | ||
## Return: | ||
- list of Split objects with updated attributes | ||
- cursor to retrieve the next page of Split objects | ||
""" | ||
return rest.get_page( | ||
resource=_resource, | ||
cursor=cursor, | ||
limit=limit, | ||
after=check_date(after), | ||
before=check_date(before), | ||
tags=tags, | ||
ids=ids, | ||
receiver_ids=receiver_ids, | ||
status=status, | ||
user=user, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from .__log import get, query, page |
Oops, something went wrong.