mirror of
https://github.com/GSA/notifications-api.git
synced 2026-01-31 15:15:38 -05:00
Find services by partial name
This commit is contained in:
@@ -46,7 +46,7 @@ from app.models import (
|
||||
SMS_TYPE,
|
||||
LETTER_TYPE,
|
||||
)
|
||||
from app.utils import email_address_is_nhs, get_london_midnight_in_utc, midnight_n_days_ago
|
||||
from app.utils import email_address_is_nhs, escape_special_characters, get_london_midnight_in_utc, midnight_n_days_ago
|
||||
|
||||
DEFAULT_SERVICE_PERMISSIONS = [
|
||||
SMS_TYPE,
|
||||
@@ -69,6 +69,11 @@ def dao_fetch_all_services(only_active=False):
|
||||
return query.all()
|
||||
|
||||
|
||||
def get_services_by_partial_name(service_name):
|
||||
service_name = escape_special_characters(service_name)
|
||||
return Service.query.filter(Service.name.ilike("%{}%".format(service_name))).all()
|
||||
|
||||
|
||||
def dao_count_live_services():
|
||||
return Service.query.filter_by(
|
||||
active=True,
|
||||
|
||||
@@ -58,6 +58,7 @@ from app.dao.services_dao import (
|
||||
dao_remove_user_from_service,
|
||||
dao_suspend_service,
|
||||
dao_update_service,
|
||||
get_services_by_partial_name,
|
||||
)
|
||||
from app.dao.service_whitelist_dao import (
|
||||
dao_fetch_service_whitelist,
|
||||
@@ -166,6 +167,17 @@ def get_services():
|
||||
return jsonify(data=data)
|
||||
|
||||
|
||||
@service_blueprint.route('/find-services-by-name', methods=['GET'])
|
||||
def find_services_by_name():
|
||||
service_name = request.args.get('service_name')
|
||||
if not service_name:
|
||||
errors = {'service_name': ['Missing data for required field.']}
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
fetched_services = get_services_by_partial_name(service_name)
|
||||
data = service_schema.dump(fetched_services, many=True).data
|
||||
return jsonify(data=data), 200
|
||||
|
||||
|
||||
@service_blueprint.route('/live-services-data', methods=['GET'])
|
||||
def get_live_services_data():
|
||||
data = dao_fetch_live_services_data()
|
||||
|
||||
Reference in New Issue
Block a user