autoadder_app.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from .autoadder import autoadder
  2. from .app_route import app_route
  3. from .exception import autoadder_exception
  4. from .exception import incomplete_request_exception
  5. from .exception import access_denied_exception
  6. from .users_collection import users_collection
  7. class autoadder_app(app_route):
  8. def __init__(
  9. self,
  10. users: users_collection,
  11. target: autoadder | None
  12. ) -> None:
  13. super().__init__()
  14. self.__users = users
  15. self.__worker = target
  16. def __login(self, params: dict) -> None:
  17. if not "apikey" in params:
  18. raise incomplete_request_exception("apikey")
  19. if self.__users.get(params["apikey"]) is None:
  20. raise access_denied_exception()
  21. @property
  22. def worker(self) -> autoadder:
  23. if self.__worker is None:
  24. raise autoadder_exception("Google Clous API key and CS not set.")
  25. return self.__worker
  26. def find(self, params: dict) -> dict:
  27. try:
  28. self.__login
  29. if not "barcode" in params:
  30. raise incomplete_request_exception("barcode")
  31. result = self.worker.find(params["barcode"])
  32. return self._success(found = result)
  33. except Exception as error:
  34. return self._fail(str(error))