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.

33 lines
904 B

  1. import lxml
  2. import requests
  3. import datetime
  4. from panera_sync.saml_check import saml_check
  5. from panera_sync.login import login_user
  6. from panera_sync.oauth_required import (
  7. get_bearer_token,
  8. get_cafe_id,
  9. get_iBOH_id,
  10. get_shifts,
  11. )
  12. PANERA_URL = "https://pantry.panerabread.com"
  13. def get_login_page(session: requests.Session):
  14. landing = session.get(PANERA_URL)
  15. return saml_check(session, landing)
  16. def login(username, password):
  17. session = requests.Session()
  18. login_page = get_login_page(session)
  19. login_user(session, login_page, username, password)
  20. return session
  21. def get_shifts_between(session, start_date: datetime.date, end_date: datetime.date):
  22. bearer_token = get_bearer_token(session)
  23. cafe_id = get_cafe_id(session)
  24. iBOH_id = get_iBOH_id(session, bearer_token)
  25. return get_shifts(session, bearer_token, iBOH_id, cafe_id, start_date, end_date)