Coverage for middle_layer/solicit/application_layer/rest_api/routes.py: 100.00%
89 statements
« prev ^ index » next coverage.py v7.10.5, created at 2026-03-09 06:13 +0000
« prev ^ index » next coverage.py v7.10.5, created at 2026-03-09 06:13 +0000
1# Copyright 2024 Associated Universities, Inc.
2#
3# This file is part of Telescope Time Allocation Tools (TTAT).
4#
5# TTAT is free software: you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation, either version 3 of the License, or
8# any later version.
9#
10# TTAT is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with TTAT. If not, see <https://www.gnu.org/licenses/>.
17#
18from pyramid.config import Configurator
21def includeme(config: Configurator):
22 """
23 Function that gets included in server.py:main(); calls all route adding functions
25 :param config: Pyramid server config object
26 """
27 facility_routes(config)
28 notification_group_routes(config)
29 proposal_process_routes(config)
30 proposal_class_routes(config)
31 science_category_routes(config)
32 capability_routes(config)
33 capability_parameter_specification_routes(config)
34 solicitation_routes(config)
35 solicitation_capability_routes(config)
36 solicitation_facility_capability_routes(config)
37 parameter_configuration_routes(config)
40def facility_routes(config: Configurator):
41 """
42 server routes for facilities
44 :param config: Pyramid server config object
45 """
46 facilities_url = "facilities"
47 single_facility_url = facilities_url + "/{id}"
48 config.add_route(name="facilities_list", pattern=facilities_url, request_method="GET")
49 config.add_route(name="facility_by_id", pattern=single_facility_url, request_method="GET")
50 config.add_route(name="facility_update", pattern=facilities_url, request_method="PUT")
53def notification_group_routes(config: Configurator):
54 """
55 server routes for notification groups
57 :param config: Pyramid server config object
58 """
59 notification_group_url = "notification_groups"
60 single_notification_group_url = notification_group_url + "/{id}"
61 config.add_route(name="notification_groups_list", pattern=notification_group_url, request_method="GET")
62 config.add_route(name="notification_group_by_id", pattern=single_notification_group_url, request_method="GET")
63 config.add_route(name="notification_group_upsert", pattern=notification_group_url, request_method="PUT")
64 config.add_route(name="notification_group_delete", pattern=single_notification_group_url, request_method="DELETE")
67def proposal_process_routes(config: Configurator):
68 """
69 server routes for proposal processes
71 :param config: Pyramid server config object
72 """
73 proposal_process_url = "proposal_processes"
74 single_proposal_process_url = proposal_process_url + "/{id}"
75 config.add_route(name="proposal_processes_list", pattern=proposal_process_url, request_method="GET")
76 config.add_route(name="proposal_process_by_id", pattern=single_proposal_process_url, request_method="GET")
77 config.add_route(name="proposal_process_upsert", pattern=proposal_process_url, request_method="PUT")
78 config.add_route(name="proposal_process_delete", pattern=single_proposal_process_url, request_method="DELETE")
81def science_category_routes(config: Configurator):
82 """
83 server routes for science categories
85 :param config: Pyramid server config object
86 """
87 science_category_url = "science_categories"
88 single_science_category_url = science_category_url + "/{id}"
89 config.add_route(name="science_categories_list", pattern=science_category_url, request_method="GET")
90 config.add_route(name="science_category_by_id", pattern=single_science_category_url, request_method="GET")
91 config.add_route(name="science_category_upsert", pattern=science_category_url, request_method="PUT")
92 config.add_route(name="science_category_delete", pattern=single_science_category_url, request_method="DELETE")
95def proposal_class_routes(config: Configurator):
96 """
97 server routes for proposal classes
99 :param config: Pyramid server config object
100 """
101 proposal_class_url = "proposal_classes"
102 single_proposal_class_url = proposal_class_url + "/{id}"
103 config.add_route(name="proposal_classes_list", pattern=proposal_class_url, request_method="GET")
104 config.add_route(name="proposal_class_by_id", pattern=single_proposal_class_url, request_method="GET")
105 config.add_route(name="proposal_class_upsert", pattern=proposal_class_url, request_method="PUT")
106 config.add_route(name="proposal_class_delete", pattern=single_proposal_class_url, request_method="DELETE")
109def capability_routes(config: Configurator):
110 """
111 server routes for Capabilities
113 :param config: Pyramid server config object
114 """
115 capability_url = "capabilities"
116 single_capability_url = capability_url + "/{capability_id}"
117 config.add_route(name="capabilities_list", pattern=f"{capability_url}", request_method="GET")
118 config.add_route(name="capability_by_id", pattern=f"{single_capability_url}", request_method="GET")
119 config.add_route(name="capability_update", pattern=f"{capability_url}", request_method="PUT")
122def capability_parameter_specification_routes(config: Configurator):
123 """
124 server routes for CapabilityParameterSpecifications
126 :param config: Pyramid server config object
127 """
128 capability_parameter_specification_url = "capabilities/{capability_id}/capability_parameter_specifications"
129 single_capability_parameter_specification_url = (
130 capability_parameter_specification_url + "/{capability_parameter_specification_id}"
131 )
132 config.add_route(
133 name="capability_parameter_specifications_list",
134 pattern=f"{capability_parameter_specification_url}",
135 request_method="GET",
136 )
137 config.add_route(
138 name="capability_parameter_specification_by_id",
139 pattern=f"{single_capability_parameter_specification_url}",
140 request_method="GET",
141 )
142 config.add_route(
143 name="capability_parameter_specification_add",
144 pattern=f"{capability_parameter_specification_url}",
145 request_method="POST",
146 )
147 config.add_route(
148 name="capability_parameter_specification_update",
149 pattern=f"{single_capability_parameter_specification_url}",
150 request_method="PUT",
151 )
152 config.add_route(
153 name="capability_parameter_specification_delete",
154 pattern=f"{single_capability_parameter_specification_url}",
155 request_method="DELETE",
156 )
159def solicitation_routes(config: Configurator):
160 """
161 server routes for Solicitations
163 :param config: Pyramid server config object
164 """
165 solicitation_url = "solicitations"
166 single_solicitation_url = solicitation_url + "/{solicitation_id}"
168 config.add_route(
169 name="add_solicitation_from_config_file", pattern=f"{solicitation_url}/configure", request_method="POST"
170 )
171 config.add_route(
172 name="get_solicitation_config_file",
173 pattern=f"{solicitation_url}/configure/" + "{solicitation_id}",
174 request_method="GET",
175 )
176 config.add_route(name="solicitations_list", pattern=solicitation_url, request_method="GET")
177 config.add_route(name="solicitation_by_id", pattern=single_solicitation_url, request_method="GET")
178 config.add_route(name="solicitation_upsert", pattern=solicitation_url, request_method="PUT")
179 config.add_route(
180 name="solicitation_update_call_period", pattern=f"{single_solicitation_url}/call_period", request_method="PUT"
181 )
182 config.add_route(name="solicitation_delete", pattern=single_solicitation_url, request_method="DELETE")
183 config.add_route(name="solicitation_close", pattern=f"{single_solicitation_url}/close", request_method="PUT")
186def solicitation_capability_routes(config: Configurator):
187 """
188 server routes for SolicitationCapabilities
190 :param config: Pyramid server config object
191 """
193 solicitation_capability_url = "solicitation_capabilities"
194 single_solicitation_capability_url = "solicitations/{solicitation_id}/capabilities/{solicitation_capability_id}"
196 config.add_route(name="solicitation_capabilities_list", pattern=solicitation_capability_url, request_method="GET")
197 config.add_route(
198 name="solicitation_capability_by_id", pattern=single_solicitation_capability_url, request_method="GET"
199 )
200 config.add_route(name="solicitation_capability_upsert", pattern=solicitation_capability_url, request_method="PUT")
201 config.add_route(
202 name="solicitation_capability_delete", pattern=single_solicitation_capability_url, request_method="DELETE"
203 )
206def solicitation_facility_capability_routes(config: Configurator):
207 """
208 server routes for SolicitationFacilityCapabilities
210 :param config: Pyramid server config object
211 """
213 solicitation_facility_capability_url = "solicitation_facility_capabilities"
215 config.add_route(
216 name="solicitation_facility_capabilities_list",
217 pattern=solicitation_facility_capability_url,
218 request_method="GET",
219 )
220 config.add_route(
221 name="solicitation_facility_capability_upsert",
222 pattern=solicitation_facility_capability_url,
223 request_method="PUT",
224 )
225 config.add_route(
226 name="solicitation_facility_capability_delete",
227 pattern="solicitation_facility_capabilities/delete/{solicitation_facility_capability_id}",
228 request_method="DELETE",
229 )
232def parameter_configuration_routes(config: Configurator):
233 """
234 server routes for SolicitationFacilityCapabilities
236 :param config: Pyramid server config object
237 """
239 parameter_configuration_url = "parameter_configurations"
241 config.add_route(
242 name="parameter_configurations_list",
243 pattern=parameter_configuration_url,
244 request_method="GET",
245 )
246 config.add_route(
247 name="parameter_configuration_upsert",
248 pattern=parameter_configuration_url,
249 request_method="PUT",
250 )
251 config.add_route(
252 name="parameter_configuration_delete",
253 pattern="parameter_configurations/delete/{parameter_configuration_id}",
254 request_method="DELETE",
255 )