mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-12 16:22:17 -05:00
Refactor high volume into serialised service model
Just looks a bit tidier and less repetitive. I’ve only done this for the serialised service because: - we’re only checking this in places where we’re already using the serialised service - if we want to check this elsewhere there’s a good chance that new code should be using the serialised service, since it’ll itself be doing some kind of performance optimisation
This commit is contained in:
@@ -87,7 +87,7 @@ def send_sms_to_provider(notification):
|
|||||||
statsd_client.timing("sms.test-key.total-time", delta_seconds)
|
statsd_client.timing("sms.test-key.total-time", delta_seconds)
|
||||||
else:
|
else:
|
||||||
statsd_client.timing("sms.live-key.total-time", delta_seconds)
|
statsd_client.timing("sms.live-key.total-time", delta_seconds)
|
||||||
if str(service.id) in current_app.config.get('HIGH_VOLUME_SERVICE'):
|
if service.high_volume:
|
||||||
statsd_client.timing("sms.live-key.high-volume.total-time", delta_seconds)
|
statsd_client.timing("sms.live-key.high-volume.total-time", delta_seconds)
|
||||||
else:
|
else:
|
||||||
statsd_client.timing("sms.live-key.not-high-volume.total-time", delta_seconds)
|
statsd_client.timing("sms.live-key.not-high-volume.total-time", delta_seconds)
|
||||||
@@ -142,7 +142,7 @@ def send_email_to_provider(notification):
|
|||||||
statsd_client.timing("email.test-key.total-time", delta_seconds)
|
statsd_client.timing("email.test-key.total-time", delta_seconds)
|
||||||
else:
|
else:
|
||||||
statsd_client.timing("email.live-key.total-time", delta_seconds)
|
statsd_client.timing("email.live-key.total-time", delta_seconds)
|
||||||
if str(service.id) in current_app.config.get('HIGH_VOLUME_SERVICE'):
|
if service.high_volume:
|
||||||
statsd_client.timing("email.live-key.high-volume.total-time", delta_seconds)
|
statsd_client.timing("email.live-key.high-volume.total-time", delta_seconds)
|
||||||
else:
|
else:
|
||||||
statsd_client.timing("email.live-key.not-high-volume.total-time", delta_seconds)
|
statsd_client.timing("email.live-key.not-high-volume.total-time", delta_seconds)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from functools import partial
|
|||||||
from threading import RLock
|
from threading import RLock
|
||||||
|
|
||||||
import cachetools
|
import cachetools
|
||||||
|
from flask import current_app
|
||||||
from notifications_utils.clients.redis import RequestCache
|
from notifications_utils.clients.redis import RequestCache
|
||||||
from notifications_utils.serialised_model import (
|
from notifications_utils.serialised_model import (
|
||||||
SerialisedModel,
|
SerialisedModel,
|
||||||
@@ -106,6 +107,10 @@ class SerialisedService(SerialisedModel):
|
|||||||
def api_keys(self):
|
def api_keys(self):
|
||||||
return SerialisedAPIKeyCollection.from_service_id(self.id)
|
return SerialisedAPIKeyCollection.from_service_id(self.id)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def high_volume(self):
|
||||||
|
return self.id in current_app.config['HIGH_VOLUME_SERVICE']
|
||||||
|
|
||||||
|
|
||||||
class SerialisedAPIKey(SerialisedModel):
|
class SerialisedAPIKey(SerialisedModel):
|
||||||
ALLOWED_PROPERTIES = {
|
ALLOWED_PROPERTIES = {
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ def process_sms_or_email_notification(
|
|||||||
template_with_content=template_with_content
|
template_with_content=template_with_content
|
||||||
)
|
)
|
||||||
|
|
||||||
if service.id in current_app.config.get('HIGH_VOLUME_SERVICE') \
|
if service.high_volume \
|
||||||
and api_user.key_type == KEY_TYPE_NORMAL \
|
and api_user.key_type == KEY_TYPE_NORMAL \
|
||||||
and notification_type in [EMAIL_TYPE, SMS_TYPE]:
|
and notification_type in [EMAIL_TYPE, SMS_TYPE]:
|
||||||
# Put service with high volumes of notifications onto a queue
|
# Put service with high volumes of notifications onto a queue
|
||||||
|
|||||||
Reference in New Issue
Block a user