def clean_key(self): self.key = self.params.get('Key', None) if self.key is None: raise UnauthorizedError() try: self.user = PipUsers.objects.get(Token=self.key) LocalUserMiddleware.update(user=self.user) except PipUsers.DoesNotExist: raise UnauthorizedError()
def clean_timezone(self): param_name = 'tz' if param_name not in self.params: raise ParameterExpected(parameter=param_name) timezone = self.params[param_name] try: user_timezone = pytz.timezone(timezone) user_now = TimeUtils.get_utc_now_as_local(user_timezone) LocalUserMiddleware.update(user_timezone=user_timezone, user_now=user_now) except pytz.exceptions.UnknownTimeZoneError: raise BadRequest(message='Unknown timezone.')
def process(self, request, *args, **kwargs): self.params = request.GET or request.POST or {} LocalUserMiddleware.process_request(request) try: self.validate_parameters() context = self.get_context_data() context.update(EmptyError().get_dict()) except ApiError as error: context = error.get_dict() except Exception as error: if settings.DEBUG: raise else: context = InternalServerError(error=error).get_dict() # self._log_queries() response = HttpResponse(self.json_dumps(context)) return response
def user_now(cls): return LocalUserMiddleware.get('user_now') or datetime.utcnow()
def is_purchased(cls, album): return album.AlbumId in LocalUserMiddleware.get('purchased_albums', default=[])