mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-02-27 05:41:00 -05:00
We can filter all notifications by status already. This commit reuses the same code to filter the notifications for a job by status. This means that, visually we can show the count on a job the same as we do for all notifications, which is similar to how we show the counts on the dashboard, so hopefully it feels like a bit more of a solid thing. This also applies to CSV downloads and AJAX updates, which will inherit any filtering that their parent page has applied.
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
|
|
from notifications_python_client.base import BaseAPIClient
|
|
from app.notify_client import _attach_current_user
|
|
|
|
|
|
class JobApiClient(BaseAPIClient):
|
|
def __init__(self, base_url=None, client_id=None, secret=None):
|
|
super(self.__class__, self).__init__(base_url=base_url or 'base_url',
|
|
client_id=client_id or 'client_id',
|
|
secret=secret or 'secret')
|
|
|
|
def init_app(self, app):
|
|
self.base_url = app.config['API_HOST_NAME']
|
|
self.client_id = app.config['ADMIN_CLIENT_USER_NAME']
|
|
self.secret = app.config['ADMIN_CLIENT_SECRET']
|
|
|
|
def get_job(self, service_id, job_id=None, limit_days=None, status=None):
|
|
if job_id:
|
|
params = {}
|
|
if status is not None:
|
|
params['status'] = status
|
|
return self.get(url='/service/{}/job/{}'.format(service_id, job_id), params=params)
|
|
params = {}
|
|
if limit_days is not None:
|
|
params['limit_days'] = limit_days
|
|
return self.get(url='/service/{}/job'.format(service_id), params=params)
|
|
|
|
def create_job(self, job_id, service_id, template_id, original_file_name, notification_count):
|
|
data = {
|
|
"id": job_id,
|
|
"template": template_id,
|
|
"original_file_name": original_file_name,
|
|
"notification_count": notification_count
|
|
}
|
|
_attach_current_user(data)
|
|
resp = self.post(url='/service/{}/job'.format(service_id), data=data)
|
|
return resp['data']
|