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

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 

19 

20 

21def includeme(config: Configurator): 

22 """ 

23 Function that gets included in server.py:main(); calls all route adding functions 

24 

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) 

38 

39 

40def facility_routes(config: Configurator): 

41 """ 

42 server routes for facilities 

43 

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") 

51 

52 

53def notification_group_routes(config: Configurator): 

54 """ 

55 server routes for notification groups 

56 

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") 

65 

66 

67def proposal_process_routes(config: Configurator): 

68 """ 

69 server routes for proposal processes 

70 

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") 

79 

80 

81def science_category_routes(config: Configurator): 

82 """ 

83 server routes for science categories 

84 

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") 

93 

94 

95def proposal_class_routes(config: Configurator): 

96 """ 

97 server routes for proposal classes 

98 

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") 

107 

108 

109def capability_routes(config: Configurator): 

110 """ 

111 server routes for Capabilities 

112 

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") 

120 

121 

122def capability_parameter_specification_routes(config: Configurator): 

123 """ 

124 server routes for CapabilityParameterSpecifications 

125 

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 ) 

157 

158 

159def solicitation_routes(config: Configurator): 

160 """ 

161 server routes for Solicitations 

162 

163 :param config: Pyramid server config object 

164 """ 

165 solicitation_url = "solicitations" 

166 single_solicitation_url = solicitation_url + "/{solicitation_id}" 

167 

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") 

184 

185 

186def solicitation_capability_routes(config: Configurator): 

187 """ 

188 server routes for SolicitationCapabilities 

189 

190 :param config: Pyramid server config object 

191 """ 

192 

193 solicitation_capability_url = "solicitation_capabilities" 

194 single_solicitation_capability_url = "solicitations/{solicitation_id}/capabilities/{solicitation_capability_id}" 

195 

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 ) 

204 

205 

206def solicitation_facility_capability_routes(config: Configurator): 

207 """ 

208 server routes for SolicitationFacilityCapabilities 

209 

210 :param config: Pyramid server config object 

211 """ 

212 

213 solicitation_facility_capability_url = "solicitation_facility_capabilities" 

214 

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 ) 

230 

231 

232def parameter_configuration_routes(config: Configurator): 

233 """ 

234 server routes for SolicitationFacilityCapabilities 

235 

236 :param config: Pyramid server config object 

237 """ 

238 

239 parameter_configuration_url = "parameter_configurations" 

240 

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 )