Coverage for webapp/endpoints/validation_sets.py: 31%
45 statements
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-05 22:06 +0000
« prev ^ index » next coverage.py v7.10.2, created at 2025-08-05 22:06 +0000
1import flask
3from canonicalwebteam.exceptions import StoreApiError
4from canonicalwebteam.store_api.dashboard import Dashboard
6from webapp.decorators import login_required
7from webapp.helpers import api_session
9dashboard = Dashboard(api_session)
11validation_sets = flask.Blueprint(
12 "validation-sets",
13 __name__,
14)
17def format_validation_set(validation_set):
18 return validation_set["headers"]
21@validation_sets.route("/api/validation-sets")
22@login_required
23def get_validation_sets():
24 res = {}
26 try:
27 validation_sets_data = dashboard.get_validation_sets(flask.session)
28 res["success"] = True
30 if len(validation_sets_data["assertions"]) > 0:
31 res["data"] = [
32 format_validation_set(item)
33 for item in validation_sets_data["assertions"]
34 ]
35 else:
36 res["data"] = []
38 response = flask.make_response(res, 200)
39 response.cache_control.max_age = "3600"
40 except StoreApiError as error_list:
41 error_messages = [
42 f"{error.get('message', 'An error occurred')}"
43 for error in error_list.errors
44 ]
46 res["message"] = " ".join(error_messages)
47 res["success"] = False
48 response = flask.make_response(res, 500)
50 return response
53@validation_sets.route("/api/validation-sets/<validation_set_id>")
54@login_required
55def get_validation_set(validation_set_id):
56 res = {}
58 try:
59 validation_set = dashboard.get_validation_set(
60 flask.session, validation_set_id
61 )
62 res["success"] = True
64 if len(validation_set["assertions"]) > 0:
65 res["data"] = [
66 format_validation_set(item)
67 for item in validation_set["assertions"]
68 ]
69 else:
70 res["data"] = []
72 response = flask.make_response(res, 200)
73 response.cache_control.max_age = "3600"
74 except StoreApiError as error_list:
75 error_messages = [
76 f"{error.get('message', 'An error occurred')}"
77 for error in error_list.errors
78 ]
80 res["message"] = " ".join(error_messages)
81 res["success"] = False
82 response = flask.make_response(res, 500)
84 return response