You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.2 KiB

  1. import json
  2. from panera_sync.user import get_signed_in_user
  3. import datetime
  4. def get_bearer_token(session):
  5. user_data = get_signed_in_user(session)
  6. return user_data["oauthToken"]["id_token"]
  7. def get_cafe_id(session):
  8. user_data = get_signed_in_user(session)
  9. data = user_data["department"]
  10. cafe, useless = data.split("-")
  11. return cafe
  12. def get_iBOH_id(session, bearer_token):
  13. headers = {"authorization": f"Bearer {bearer_token}"}
  14. r = session.get(
  15. "https://pantry.panerabread.com/apis/pantry-ui-service/user-profile/v1/user/ibohid",
  16. headers=headers,
  17. )
  18. data = json.loads(r.text)
  19. return data["ibohid"]
  20. def get_shifts(
  21. session,
  22. bearer_token,
  23. iBOH_id,
  24. cafe_id,
  25. start_date: datetime.date,
  26. end_date: datetime.date,
  27. ):
  28. headers = {"authorization": f"Bearer {bearer_token}"}
  29. base_url = f"https://iportal.panerabread.com/pantry-apis/scheduling-ui-service/associate/{iBOH_id}/shifts"
  30. query = {
  31. "cafeNo": cafe_id,
  32. "withHistory": True,
  33. "startDate": start_date.strftime("%Y-%m-%d"),
  34. "endDate": end_date.strftime("%Y-%m-%d"),
  35. }
  36. r = session.get(base_url, params=query, headers=headers)
  37. breakpoint()
  38. return json.loads(r.text)