Changeset View
Changeset View
Standalone View
Standalone View
swh/web/api/throttling.py
Show First 20 Lines • Show All 108 Lines • ▼ Show 20 Lines | def allow_request(self, request: Request, view: APIView) -> bool: | ||||
else: | else: | ||||
default_scope = self.scope | default_scope = self.scope | ||||
# check if there is a specific rate limiting associated | # check if there is a specific rate limiting associated | ||||
# to the request type | # to the request type | ||||
self.scope = default_scope + "_" + request.method.lower() | self.scope = default_scope + "_" + request.method.lower() | ||||
try: | try: | ||||
self.rate = self.get_rate() | self.rate = self.get_rate() | ||||
# use default rate limiting otherwise | # use default rate limiting otherwise | ||||
except ImproperlyConfigured as exc: | except ImproperlyConfigured: | ||||
sentry_sdk.capture_exception(exc) | |||||
self.scope = default_scope | self.scope = default_scope | ||||
self.rate = self.get_rate() | self.rate = self.get_rate() | ||||
self.num_requests, self.duration = self.parse_rate(self.rate) | self.num_requests, self.duration = self.parse_rate(self.rate) | ||||
request_allowed = super(ScopedRateThrottle, self).allow_request( | request_allowed = super(ScopedRateThrottle, self).allow_request( | ||||
request, view | request, view | ||||
) | ) | ||||
self.scope = default_scope | self.scope = default_scope | ||||
▲ Show 20 Lines • Show All 44 Lines • Show Last 20 Lines |