Files
notifications-admin/app/notify_client/job_api_client.py
Chris Hill-Scott 6d7d5a4e46 Make jobs filterable by notification status
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.
2016-06-14 11:12:46 +01:00

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']