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.')