Skip to content

Commit

Permalink
Update for Auth API V4 (#324)
Browse files Browse the repository at this point in the history
* Update __init__.py

* Update __init__.py

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* tests update

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
  • Loading branch information
owohappy and pre-commit-ci[bot] authored Nov 22, 2024
1 parent e4456cb commit af0a9b5
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 48 deletions.
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="[email protected]")
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

0 comments on commit af0a9b5

Please sign in to comment.