mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-01 15:46:07 -05:00
Delete job-stats endpoints
Deleted these endpoints: * /service/<uuid:service_id>/job-stats/<job_id> * /service/<uuid:service_id>/job-stats
This commit is contained in:
@@ -5,16 +5,13 @@ from flask import (
|
||||
current_app
|
||||
)
|
||||
|
||||
from app import DATETIME_FORMAT
|
||||
from app.dao.jobs_dao import (
|
||||
dao_create_job,
|
||||
dao_update_job,
|
||||
dao_get_job_by_service_id_and_job_id,
|
||||
dao_get_jobs_by_service_id,
|
||||
dao_get_future_scheduled_job_by_id_and_service_id,
|
||||
dao_get_notification_outcomes_for_job,
|
||||
dao_get_job_stats_for_service,
|
||||
dao_get_job_statistics_for_job)
|
||||
dao_get_notification_outcomes_for_job)
|
||||
from app.dao.services_dao import dao_fetch_service_by_id
|
||||
from app.dao.templates_dao import dao_get_template_by_id
|
||||
from app.dao.notifications_dao import get_notifications_for_job
|
||||
@@ -51,13 +48,6 @@ def get_job_by_service_and_job_id(service_id, job_id):
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@job_blueprint.route('/job-stats/<job_id>', methods=['GET'])
|
||||
def get_job_stats_by_service_and_job_id(service_id, job_id):
|
||||
statistic = dao_get_job_statistics_for_job(service_id=service_id, job_id=job_id)
|
||||
|
||||
return jsonify(_serialize_job_stats(statistic))
|
||||
|
||||
|
||||
@job_blueprint.route('/<job_id>/cancel', methods=['POST'])
|
||||
def cancel_job(service_id, job_id):
|
||||
job = dao_get_future_scheduled_job_by_id_and_service_id(job_id, service_id)
|
||||
@@ -118,57 +108,6 @@ def get_jobs_by_service(service_id):
|
||||
return jsonify(**get_paginated_jobs(service_id, limit_days, statuses, page))
|
||||
|
||||
|
||||
@job_blueprint.route('/job-stats', methods=['GET'])
|
||||
def get_jobs_for_service(service_id):
|
||||
if request.args.get('limit_days'):
|
||||
try:
|
||||
limit_days = int(request.args['limit_days'])
|
||||
except ValueError:
|
||||
errors = {'limit_days': ['{} is not an integer'.format(request.args['limit_days'])]}
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
else:
|
||||
limit_days = None
|
||||
statuses = _parse_statuses(request.args.get('statuses', ''))
|
||||
page = int(request.args.get('page', 1))
|
||||
|
||||
pagination = dao_get_job_stats_for_service(service_id=service_id,
|
||||
page=page,
|
||||
page_size=current_app.config['PAGE_SIZE'],
|
||||
limit_days=limit_days,
|
||||
statuses=statuses)
|
||||
return jsonify({
|
||||
'data': [_serialize_job_stats(x) for x in pagination.items],
|
||||
'page_size': pagination.per_page,
|
||||
'total': pagination.total,
|
||||
'links': pagination_links(
|
||||
pagination,
|
||||
'.get_jobs_by_service',
|
||||
service_id=service_id
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
def _parse_statuses(statuses):
|
||||
return [x.strip() for x in statuses.split(',')]
|
||||
|
||||
|
||||
def _serialize_job_stats(stat):
|
||||
return {
|
||||
"job_id": stat.job_id,
|
||||
"original_file_name": stat.original_file_name,
|
||||
"created_at": stat.created_at.strftime(DATETIME_FORMAT),
|
||||
"scheduled_for": stat.scheduled_for,
|
||||
"template_id": stat.template_id,
|
||||
"template_version": stat.template_version,
|
||||
"job_status": stat.job_status,
|
||||
"service_id": stat.service_id,
|
||||
"requested": stat.notification_count,
|
||||
"sent": stat.sent,
|
||||
"delivered": stat.delivered,
|
||||
"failed": stat.failed
|
||||
}
|
||||
|
||||
|
||||
@job_blueprint.route('', methods=['POST'])
|
||||
def create_job(service_id):
|
||||
service = dao_fetch_service_by_id(service_id)
|
||||
|
||||
Reference in New Issue
Block a user