Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ print(credentials)
{
'access_token': '<your_access_token>',
'refresh_token': '<your_refresh_token>',
'user_id': '<your_user_id>',
'cookie': '<cookie>',
}
```
Expand All @@ -62,7 +61,7 @@ print(credentials)
```python
from tgtg import TgtgClient

client = TgtgClient(access_token="<access_token>", refresh_token="<refresh_token>", user_id="<user_id>", cookie="<cookie>")
client = TgtgClient(access_token="<access_token>", refresh_token="<refresh_token>", cookie="<cookie>")

```

Expand Down Expand Up @@ -434,7 +433,6 @@ print(order)
{
"id": "<order_id>",
"item_id": "<item_id_that_was_ordered>",
"user_id": "<your_user_id>",
"state": "RESERVED",
"order_line": {
"quantity": 1,
Expand Down Expand Up @@ -483,7 +481,6 @@ print(order_status)
{
"id": "<order_id>",
"item_id": "<item_id_that_was_ordered>",
"user_id": "<your_user_id>",
"state": "RESERVED"
}
```
Expand Down
6 changes: 1 addition & 5 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,7 @@ def auth_polling_response():
responses.add(
responses.POST,
urljoin(BASE_URL, AUTH_POLLING_ENDPOINT),
json={
"access_token": "an_access_token",
"refresh_token": "a_refresh_token",
"startup_data": {"user": {"user_id": 1234}},
},
json={"access_token": "an_access_token", "refresh_token": "a_refresh_token"},
status=200,
)

Expand Down
1 change: 0 additions & 1 deletion tests/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,5 @@
tgtg_client_fake_tokens = {
"access_token": "access_token",
"refresh_token": "refresh_token",
"user_id": "user_id",
"cookie": "cookie",
}
11 changes: 0 additions & 11 deletions tests/test_login.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,21 +88,10 @@ def test_login_empty_fail():
TgtgClient().login()


def test_login_empty_token_fail():
with pytest.raises(TypeError):
TgtgClient(user_id=1234).login()


def test_login_empty_user_id_fail():
with pytest.raises(TypeError):
TgtgClient(access_token="test_token", refresh_token="test_refres_toekn").login()


def test_get_credentials(client):

assert client.get_credentials() == {
"access_token": "an_access_token",
"cookie": "sweet sweet cookie",
"refresh_token": "a_refresh_token",
"user_id": "user_id",
}
2 changes: 0 additions & 2 deletions tests/test_signup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,13 @@ def test_signup_ok():
"login_response": {
"access_token": "an_access_token",
"refresh_token": "a_refresh_token",
"startup_data": {"user": {"user_id": 1234}},
}
},
status=200,
)
client = TgtgClient().signup_by_email(email="test@test.com")
assert client.access_token == "an_access_token"
assert client.refresh_token == "a_refresh_token"
assert client.user_id == 1234


def test_signup_fail():
Expand Down
36 changes: 11 additions & 25 deletions tgtg/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
BASE_URL = "https://apptoogoodtogo.com/api/"
API_ITEM_ENDPOINT = "item/v8/"
FAVORITE_ITEM_ENDPOINT = "user/favorite/v1/{}/update"
AUTH_BY_EMAIL_ENDPOINT = "auth/v3/authByEmail"
AUTH_POLLING_ENDPOINT = "auth/v3/authByRequestPollingId"
SIGNUP_BY_EMAIL_ENDPOINT = "auth/v3/signUpByEmail"
REFRESH_ENDPOINT = "auth/v3/token/refresh"
AUTH_BY_EMAIL_ENDPOINT = "auth/v4/authByEmail"
AUTH_POLLING_ENDPOINT = "auth/v4/authByRequestPollingId"
SIGNUP_BY_EMAIL_ENDPOINT = "auth/v4/signUpByEmail"
REFRESH_ENDPOINT = "auth/v4/token/refresh"
ACTIVE_ORDER_ENDPOINT = "order/v7/active"
INACTIVE_ORDER_ENDPOINT = "order/v7/inactive"
CREATE_ORDER_ENDPOINT = "order/v7/create/"
Expand All @@ -42,7 +42,6 @@ def __init__(
email=None,
access_token=None,
refresh_token=None,
user_id=None,
user_agent=None,
language="en-GB",
proxies=None,
Expand All @@ -58,7 +57,6 @@ def __init__(

self.access_token = access_token
self.refresh_token = refresh_token
self.user_id = user_id
self.cookie = cookie

self.last_time_token_refreshed = last_time_token_refreshed
Expand Down Expand Up @@ -92,7 +90,6 @@ def get_credentials(self):
return {
"access_token": self.access_token,
"refresh_token": self.refresh_token,
"user_id": self.user_id,
"cookie": self.cookie,
}

Expand All @@ -113,7 +110,7 @@ def _headers(self):

@property
def _already_logged(self):
return bool(self.access_token and self.refresh_token and self.user_id)
return bool(self.access_token and self.refresh_token)

def _refresh_token(self):
if (
Expand All @@ -139,15 +136,9 @@ def _refresh_token(self):
raise TgtgAPIError(response.status_code, response.content)

def login(self):
if not (
self.email
or self.access_token
and self.refresh_token
and self.user_id
and self.cookie
):
if not (self.email or self.access_token and self.refresh_token and self.cookie):
raise TypeError(
"You must provide at least email or access_token, refresh_token, user_id and cookie"
"You must provide at least email or access_token, refresh_token and cookie"
)
if self._already_logged:
self._refresh_token()
Expand Down Expand Up @@ -207,7 +198,6 @@ def start_polling(self, polling_id):
self.access_token = login_response["access_token"]
self.refresh_token = login_response["refresh_token"]
self.last_time_token_refreshed = datetime.datetime.now()
self.user_id = login_response["startup_data"]["user"]["user_id"]
self.cookie = response.headers["Set-Cookie"]
return
else:
Expand Down Expand Up @@ -245,7 +235,6 @@ def get_items(

# fields are sorted like in the app
data = {
"user_id": self.user_id,
"origin": {"latitude": latitude, "longitude": longitude},
"radius": radius,
"page_size": page_size,
Expand Down Expand Up @@ -278,7 +267,7 @@ def get_item(self, item_id):
response = self.session.post(
urljoin(self._get_url(API_ITEM_ENDPOINT), str(item_id)),
headers=self._headers,
json={"user_id": self.user_id, "origin": None},
json={"origin": None},
proxies=self.proxies,
timeout=self.timeout,
)
Expand All @@ -301,7 +290,6 @@ def get_favorites(
data = {
"origin": {"latitude": latitude, "longitude": longitude},
"radius": radius,
"user_id": self.user_id,
"paging": {"page": page, "size": page_size},
"bucket": {"filler_type": "Favorites"},
}
Expand Down Expand Up @@ -405,9 +393,7 @@ def signup_by_email(
self.access_token = response.json()["login_response"]["access_token"]
self.refresh_token = response.json()["login_response"]["refresh_token"]
self.last_time_token_refreshed = datetime.datetime.now()
self.user_id = response.json()["login_response"]["startup_data"]["user"][
"user_id"
]

return self
else:
raise TgtgAPIError(response.status_code, response.content)
Expand All @@ -417,7 +403,7 @@ def get_active(self):
response = self.session.post(
self._get_url(ACTIVE_ORDER_ENDPOINT),
headers=self._headers,
json={"user_id": self.user_id},
json={},
proxies=self.proxies,
timeout=self.timeout,
)
Expand All @@ -431,7 +417,7 @@ def get_inactive(self, page=0, page_size=20):
response = self.session.post(
self._get_url(INACTIVE_ORDER_ENDPOINT),
headers=self._headers,
json={"paging": {"page": page, "size": page_size}, "user_id": self.user_id},
json={"paging": {"page": page, "size": page_size}},
proxies=self.proxies,
timeout=self.timeout,
)
Expand Down
Loading