mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-18 21:49:37 -04:00
Inherit don’t duplicate API client constructor
This removes some code which is duplicative and obscure (ie it’s not very clear why we do `"a" * 73` even though there is a Very Good Reason for doing so).
This commit is contained in:
@@ -16,6 +16,9 @@ class NotifyAdminAPIClient(BaseAPIClient):
|
|||||||
|
|
||||||
redis_client = RedisClient()
|
redis_client = RedisClient()
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__("a" * 73, "b")
|
||||||
|
|
||||||
def init_app(self, app):
|
def init_app(self, app):
|
||||||
self.base_url = app.config['API_HOST_NAME']
|
self.base_url = app.config['API_HOST_NAME']
|
||||||
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ KEY_TYPE_TEST = 'test'
|
|||||||
|
|
||||||
|
|
||||||
class ApiKeyApiClient(NotifyAdminAPIClient):
|
class ApiKeyApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_api_keys(self, service_id):
|
def get_api_keys(self, service_id):
|
||||||
return self.get(url='/service/{}/api-keys'.format(service_id))
|
return self.get(url='/service/{}/api-keys'.format(service_id))
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class BillingAPIClient(NotifyAdminAPIClient):
|
class BillingAPIClient(NotifyAdminAPIClient):
|
||||||
# Fudge assert in the super __init__ so
|
|
||||||
# we can set those variables later.
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_billable_units_ft(self, service_id, year):
|
def get_billable_units_ft(self, service_id, year):
|
||||||
return self.get(
|
return self.get(
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class ComplaintApiClient(NotifyAdminAPIClient):
|
class ComplaintApiClient(NotifyAdminAPIClient):
|
||||||
# Fudge assert in the super __init__ so
|
|
||||||
# we can set those variables later.
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_all_complaints(self, page=1):
|
def get_all_complaints(self, page=1):
|
||||||
params = {'page': page}
|
params = {'page': page}
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ from app.notify_client import NotifyAdminAPIClient, cache
|
|||||||
|
|
||||||
class EmailBrandingClient(NotifyAdminAPIClient):
|
class EmailBrandingClient(NotifyAdminAPIClient):
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
@cache.set('email_branding-{branding_id}')
|
@cache.set('email_branding-{branding_id}')
|
||||||
def get_email_branding(self, branding_id):
|
def get_email_branding(self, branding_id):
|
||||||
return self.get(url='/email-branding/{}'.format(branding_id))
|
return self.get(url='/email-branding/{}'.format(branding_id))
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class EventsApiClient(NotifyAdminAPIClient):
|
class EventsApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def create_event(self, event_type, event_data):
|
def create_event(self, event_type, event_data):
|
||||||
data = {
|
data = {
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
class InboundNumberClient(NotifyAdminAPIClient):
|
class InboundNumberClient(NotifyAdminAPIClient):
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_available_inbound_sms_numbers(self):
|
def get_available_inbound_sms_numbers(self):
|
||||||
return self.get(url='/inbound-number/available')
|
return self.get(url='/inbound-number/available')
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache
|
|||||||
|
|
||||||
|
|
||||||
class InviteApiClient(NotifyAdminAPIClient):
|
class InviteApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def init_app(self, app):
|
def init_app(self, app):
|
||||||
super().init_app(app)
|
super().init_app(app)
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ class JobApiClient(NotifyAdminAPIClient):
|
|||||||
|
|
||||||
NON_SCHEDULED_JOB_STATUSES = JOB_STATUSES - {'scheduled', 'cancelled'}
|
NON_SCHEDULED_JOB_STATUSES = JOB_STATUSES - {'scheduled', 'cancelled'}
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __convert_statistics(job):
|
def __convert_statistics(job):
|
||||||
results = defaultdict(int)
|
results = defaultdict(int)
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
class LetterBrandingClient(NotifyAdminAPIClient):
|
class LetterBrandingClient(NotifyAdminAPIClient):
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_letter_branding(self):
|
def get_letter_branding(self):
|
||||||
return self.get(url='/dvla_organisations')
|
return self.get(url='/dvla_organisations')
|
||||||
|
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
class LetterJobsClient(NotifyAdminAPIClient):
|
class LetterJobsClient(NotifyAdminAPIClient):
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def submit_returned_letters(self, references):
|
def submit_returned_letters(self, references):
|
||||||
return self.post(
|
return self.post(
|
||||||
url='/letters/returned',
|
url='/letters/returned',
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user
|
|||||||
|
|
||||||
|
|
||||||
class NotificationApiClient(NotifyAdminAPIClient):
|
class NotificationApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_notifications_for_service(
|
def get_notifications_for_service(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user
|
|||||||
|
|
||||||
|
|
||||||
class OrgInviteApiClient(NotifyAdminAPIClient):
|
class OrgInviteApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def init_app(self, app):
|
def init_app(self, app):
|
||||||
super().init_app(app)
|
super().init_app(app)
|
||||||
|
|||||||
@@ -3,9 +3,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache
|
|||||||
|
|
||||||
class OrganisationsClient(NotifyAdminAPIClient):
|
class OrganisationsClient(NotifyAdminAPIClient):
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_organisations(self):
|
def get_organisations(self):
|
||||||
return self.get(url='/organisations')
|
return self.get(url='/organisations')
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class PlatformStatsAPIClient(NotifyAdminAPIClient):
|
class PlatformStatsAPIClient(NotifyAdminAPIClient):
|
||||||
# Fudge assert in the super __init__ so
|
|
||||||
# we can set those variables later.
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_aggregate_platform_stats(self, params_dict=None):
|
def get_aggregate_platform_stats(self, params_dict=None):
|
||||||
return self.get("/platform-stats", params=params_dict)
|
return self.get("/platform-stats", params=params_dict)
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user
|
|||||||
|
|
||||||
|
|
||||||
class ProviderClient(NotifyAdminAPIClient):
|
class ProviderClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_all_providers(self):
|
def get_all_providers(self):
|
||||||
return self.get(
|
return self.get(
|
||||||
|
|||||||
@@ -3,10 +3,6 @@ from app.notify_client import NotifyAdminAPIClient, _attach_current_user, cache
|
|||||||
|
|
||||||
|
|
||||||
class ServiceAPIClient(NotifyAdminAPIClient):
|
class ServiceAPIClient(NotifyAdminAPIClient):
|
||||||
# Fudge assert in the super __init__ so
|
|
||||||
# we can set those variables later.
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
@cache.delete('user-{user_id}')
|
@cache.delete('user-{user_id}')
|
||||||
def create_service(
|
def create_service(
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class StatusApiClient(NotifyAdminAPIClient):
|
class StatusApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_status(self, *params):
|
def get_status(self, *params):
|
||||||
return self.get(url='/_status', *params)
|
return self.get(url='/_status', *params)
|
||||||
|
|||||||
@@ -2,10 +2,6 @@ from app.notify_client import NotifyAdminAPIClient, cache
|
|||||||
|
|
||||||
|
|
||||||
class TemplateFolderAPIClient(NotifyAdminAPIClient):
|
class TemplateFolderAPIClient(NotifyAdminAPIClient):
|
||||||
# Fudge assert in the super __init__ so
|
|
||||||
# we can set those variables later.
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__('a' * 73, 'b')
|
|
||||||
|
|
||||||
@cache.delete('service-{service_id}-template-folders')
|
@cache.delete('service-{service_id}-template-folders')
|
||||||
def create_template_folder(
|
def create_template_folder(
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
|
|
||||||
|
|
||||||
class TemplateStatisticsApiClient(NotifyAdminAPIClient):
|
class TemplateStatisticsApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def get_template_statistics_for_service(self, service_id, limit_days=None):
|
def get_template_statistics_for_service(self, service_id, limit_days=None):
|
||||||
params = {}
|
params = {}
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ ALLOWED_ATTRIBUTES = {
|
|||||||
|
|
||||||
|
|
||||||
class UserApiClient(NotifyAdminAPIClient):
|
class UserApiClient(NotifyAdminAPIClient):
|
||||||
def __init__(self):
|
|
||||||
super().__init__("a" * 73, "b")
|
|
||||||
|
|
||||||
def init_app(self, app):
|
def init_app(self, app):
|
||||||
super().init_app(app)
|
super().init_app(app)
|
||||||
|
|||||||
@@ -9,8 +9,6 @@ from app.notify_client import NotifyAdminAPIClient
|
|||||||
from tests import service_json
|
from tests import service_json
|
||||||
from tests.conftest import api_user_active, platform_admin_user, set_config
|
from tests.conftest import api_user_active, platform_admin_user, set_config
|
||||||
|
|
||||||
SAMPLE_API_KEY = '{}-{}'.format('a' * 36, 's' * 36)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('method', [
|
@pytest.mark.parametrize('method', [
|
||||||
'put',
|
'put',
|
||||||
@@ -26,7 +24,7 @@ SAMPLE_API_KEY = '{}-{}'.format('a' * 36, 's' * 36)
|
|||||||
None
|
None
|
||||||
], ids=['active_service', 'no_service'])
|
], ids=['active_service', 'no_service'])
|
||||||
def test_active_service_can_be_modified(app_, method, user, service):
|
def test_active_service_can_be_modified(app_, method, user, service):
|
||||||
api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')
|
api_client = NotifyAdminAPIClient()
|
||||||
|
|
||||||
with app_.test_request_context() as request_context, app_.test_client() as client:
|
with app_.test_request_context() as request_context, app_.test_client() as client:
|
||||||
client.login(user)
|
client.login(user)
|
||||||
@@ -45,7 +43,7 @@ def test_active_service_can_be_modified(app_, method, user, service):
|
|||||||
'delete'
|
'delete'
|
||||||
])
|
])
|
||||||
def test_inactive_service_cannot_be_modified_by_normal_user(app_, api_user_active, method):
|
def test_inactive_service_cannot_be_modified_by_normal_user(app_, api_user_active, method):
|
||||||
api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')
|
api_client = NotifyAdminAPIClient()
|
||||||
|
|
||||||
with app_.test_request_context() as request_context, app_.test_client() as client:
|
with app_.test_request_context() as request_context, app_.test_client() as client:
|
||||||
client.login(api_user_active)
|
client.login(api_user_active)
|
||||||
@@ -64,7 +62,7 @@ def test_inactive_service_cannot_be_modified_by_normal_user(app_, api_user_activ
|
|||||||
'delete'
|
'delete'
|
||||||
])
|
])
|
||||||
def test_inactive_service_can_be_modified_by_platform_admin(app_, platform_admin_user, method):
|
def test_inactive_service_can_be_modified_by_platform_admin(app_, platform_admin_user, method):
|
||||||
api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')
|
api_client = NotifyAdminAPIClient()
|
||||||
|
|
||||||
with app_.test_request_context() as request_context, app_.test_client() as client:
|
with app_.test_request_context() as request_context, app_.test_client() as client:
|
||||||
client.login(platform_admin_user)
|
client.login(platform_admin_user)
|
||||||
@@ -78,7 +76,7 @@ def test_inactive_service_can_be_modified_by_platform_admin(app_, platform_admin
|
|||||||
|
|
||||||
|
|
||||||
def test_generate_headers_sets_standard_headers(app_):
|
def test_generate_headers_sets_standard_headers(app_):
|
||||||
api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')
|
api_client = NotifyAdminAPIClient()
|
||||||
with set_config(app_, 'ROUTE_SECRET_KEY_1', 'proxy-secret'):
|
with set_config(app_, 'ROUTE_SECRET_KEY_1', 'proxy-secret'):
|
||||||
api_client.init_app(app_)
|
api_client.init_app(app_)
|
||||||
|
|
||||||
@@ -93,7 +91,7 @@ def test_generate_headers_sets_standard_headers(app_):
|
|||||||
|
|
||||||
|
|
||||||
def test_generate_headers_sets_request_id_if_in_request_context(app_):
|
def test_generate_headers_sets_request_id_if_in_request_context(app_):
|
||||||
api_client = NotifyAdminAPIClient(SAMPLE_API_KEY, 'base_url')
|
api_client = NotifyAdminAPIClient()
|
||||||
api_client.init_app(app_)
|
api_client.init_app(app_)
|
||||||
|
|
||||||
with app_.test_request_context() as request_context:
|
with app_.test_request_context() as request_context:
|
||||||
|
|||||||
Reference in New Issue
Block a user