5
5
6
6
import fastapi
7
7
8
- from . import clients , responses
8
+ from . import clients , models
9
9
10
10
11
11
def create_links_to_job (
12
- request : fastapi .Request , job : responses .StatusInfo
13
- ) -> List [responses .Link ]:
12
+ request : fastapi .Request , job : models .StatusInfo
13
+ ) -> List [models .Link ]:
14
14
"""Create links to attach to provided the job.
15
15
16
16
Parameters
17
17
----------
18
- job : schema[" StatusInfo"]
18
+ job : models. StatusInfo
19
19
Job to create links for.
20
20
21
21
Returns
22
22
-------
23
- List[responses .Link]
23
+ List[models .Link]
24
24
Links to attach to job.
25
25
"""
26
26
rel_job_link = "self"
@@ -29,7 +29,7 @@ def create_links_to_job(
29
29
rel_job_link = "monitor"
30
30
title_job_link = "job status info"
31
31
links = [
32
- responses .Link (
32
+ models .Link (
33
33
href = urllib .parse .urljoin (str (request .base_url ), f"jobs/{ job .jobID } " ),
34
34
rel = rel_job_link ,
35
35
type = "application/json" ,
@@ -38,7 +38,7 @@ def create_links_to_job(
38
38
]
39
39
if job .status .value in ("successful" , "failed" ):
40
40
links .append (
41
- responses .Link (
41
+ models .Link (
42
42
href = urllib .parse .urljoin (
43
43
str (request .base_url ), f"jobs/{ job .jobID } /results"
44
44
),
@@ -50,8 +50,8 @@ def create_links_to_job(
50
50
51
51
def create_self_link (
52
52
request_url : str , title : Optional [str ] = None , type : Optional [str ] = None
53
- ) -> responses .Link :
54
- self_link = responses .Link (href = str (request_url ), rel = "self" )
53
+ ) -> models .Link :
54
+ self_link = models .Link (href = str (request_url ), rel = "self" )
55
55
if type :
56
56
self_link .type = type
57
57
if title :
@@ -60,8 +60,8 @@ def create_self_link(
60
60
61
61
62
62
def create_page_link (
63
- request_url : str , page : str , pagination_qs : responses .PaginationQueryParameters
64
- ) -> responses .Link :
63
+ request_url : str , page : str , pagination_qs : models .PaginationQueryParameters
64
+ ) -> models .Link :
65
65
if page not in ("next" , "prev" ):
66
66
raise ValueError (f"{ page } is not a valid value for ``page`` parameter" )
67
67
request_parsed = urllib .parse .urlsplit (request_url )
@@ -72,13 +72,13 @@ def create_page_link(
72
72
query_string = urllib .parse .urlencode (queries_page , doseq = True )
73
73
parsed_page_request = request_parsed ._replace (query = query_string )
74
74
url_page = parsed_page_request .geturl ()
75
- link_page = responses .Link (href = url_page , rel = page )
75
+ link_page = models .Link (href = url_page , rel = page )
76
76
return link_page
77
77
78
78
79
79
def create_pagination_links (
80
- request_url : str , pagination_qs : Optional [responses .PaginationQueryParameters ]
81
- ) -> List [responses .Link ]:
80
+ request_url : str , pagination_qs : Optional [models .PaginationQueryParameters ]
81
+ ) -> List [models .Link ]:
82
82
pagination_links = []
83
83
if pagination_qs :
84
84
if pagination_qs .next :
@@ -92,32 +92,32 @@ def create_pagination_links(
92
92
93
93
def create_get_landing_page_endpoint (
94
94
client : clients .BaseClient ,
95
- ) -> Callable [[fastapi .Request ], responses .LandingPage ]:
95
+ ) -> Callable [[fastapi .Request ], models .LandingPage ]:
96
96
def get_landing_page (
97
97
request : fastapi .Request ,
98
- ) -> responses .LandingPage :
98
+ ) -> models .LandingPage :
99
99
"""Get the API landing page."""
100
100
links = [
101
- responses .Link (
101
+ models .Link (
102
102
href = urllib .parse .urljoin (str (request .base_url ), "openapi.json" ),
103
103
rel = "service-desc" ,
104
104
type = "application/vnd.oai.openapi+json;version=3.0" ,
105
105
title = "OpenAPI service description" ,
106
106
),
107
- responses .Link (
107
+ models .Link (
108
108
href = urllib .parse .urljoin (str (request .base_url ), "conformance" ),
109
109
rel = "http://www.opengis.net/def/rel/ogc/1.0/conformance" ,
110
110
type = "application/json" ,
111
111
title = "Conformance declaration" ,
112
112
),
113
- responses .Link (
113
+ models .Link (
114
114
href = urllib .parse .urljoin (str (request .base_url ), "processes" ),
115
115
rel = "http://www.opengis.net/def/rel/ogc/1.0/processes" ,
116
116
type = "application/json" ,
117
117
title = "Metadata about the processes" ,
118
118
),
119
119
]
120
- landing_page = responses .LandingPage (links = links )
120
+ landing_page = models .LandingPage (links = links )
121
121
122
122
return landing_page
123
123
@@ -126,10 +126,10 @@ def get_landing_page(
126
126
127
127
def create_get_conformance_endpoint (
128
128
client : clients .BaseClient ,
129
- ) -> Callable [[fastapi .Request ], responses .ConfClass ]:
130
- def get_conformance (request : fastapi .Request ) -> responses .ConfClass :
129
+ ) -> Callable [[fastapi .Request ], models .ConfClass ]:
130
+ def get_conformance (request : fastapi .Request ) -> models .ConfClass :
131
131
"""Get the API conformance declaration page."""
132
- conformance = responses .ConfClass (
132
+ conformance = models .ConfClass (
133
133
conformsTo = [
134
134
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/core" ,
135
135
"http://www.opengis.net/spec/ogcapi-processes-1/1.0/conf/ogc-process-description" ,
@@ -146,11 +146,11 @@ def get_conformance(request: fastapi.Request) -> responses.ConfClass:
146
146
147
147
def create_get_processes_endpoint (
148
148
client : clients .BaseClient ,
149
- ) -> Callable [[fastapi .Request ], responses .ProcessList ]:
149
+ ) -> Callable [[fastapi .Request ], models .ProcessList ]:
150
150
def get_processes (
151
151
request : fastapi .Request ,
152
- process_list : responses .ProcessList = fastapi .Depends (client .get_processes ),
153
- ) -> responses .ProcessList :
152
+ process_list : models .ProcessList = fastapi .Depends (client .get_processes ),
153
+ ) -> models .ProcessList :
154
154
"""Get the list of available processes.
155
155
156
156
The list of processes contains a summary of each process
@@ -159,7 +159,7 @@ def get_processes(
159
159
"""
160
160
for process in process_list .processes :
161
161
process .links = [
162
- responses .Link (
162
+ models .Link (
163
163
href = urllib .parse .urljoin (
164
164
str (request .base_url ), f"processes/{ process .id } "
165
165
),
@@ -184,11 +184,11 @@ def get_processes(
184
184
185
185
def create_get_process_endpoint (
186
186
client : clients .BaseClient ,
187
- ) -> Callable [[fastapi .Request ], responses .ProcessDescription ]:
187
+ ) -> Callable [[fastapi .Request ], models .ProcessDescription ]:
188
188
def get_process (
189
189
request : fastapi .Request ,
190
- process : responses .ProcessDescription = fastapi .Depends (client .get_process ),
191
- ) -> responses .ProcessDescription :
190
+ process : models .ProcessDescription = fastapi .Depends (client .get_process ),
191
+ ) -> models .ProcessDescription :
192
192
"""Get the description of a specific process.
193
193
194
194
The list of processes contains a summary of each process
@@ -197,7 +197,7 @@ def get_process(
197
197
"""
198
198
process .links = [
199
199
create_self_link (str (request .url )),
200
- responses .Link (
200
+ models .Link (
201
201
href = urllib .parse .urljoin (
202
202
str (request .base_url ), f"processes/{ process .id } /execution"
203
203
),
@@ -214,18 +214,16 @@ def get_process(
214
214
215
215
def create_post_process_execution_endpoint (
216
216
client : clients .BaseClient ,
217
- ) -> Callable [[fastapi .Request , fastapi .Response ], responses .StatusInfo ]:
217
+ ) -> Callable [[fastapi .Request , fastapi .Response ], models .StatusInfo ]:
218
218
def post_process_execution (
219
219
request : fastapi .Request ,
220
220
response : fastapi .Response ,
221
- status_info : responses .StatusInfo = fastapi .Depends (
222
- client .post_process_execution
223
- ),
224
- ) -> responses .StatusInfo :
221
+ status_info : models .StatusInfo = fastapi .Depends (client .post_process_execution ),
222
+ ) -> models .StatusInfo :
225
223
"""Create a new job."""
226
224
status_info .links = [
227
225
create_self_link (str (request .url )),
228
- responses .Link (
226
+ models .Link (
229
227
href = urllib .parse .urljoin (
230
228
str (request .base_url ), f"jobs/{ status_info .jobID } "
231
229
),
@@ -245,11 +243,11 @@ def post_process_execution(
245
243
246
244
def create_get_jobs_endpoint (
247
245
client : clients .BaseClient ,
248
- ) -> Callable [[fastapi .Request ], responses .JobList ]:
246
+ ) -> Callable [[fastapi .Request ], models .JobList ]:
249
247
def get_jobs (
250
248
request : fastapi .Request ,
251
- job_list : responses .JobList = fastapi .Depends (client .get_jobs ),
252
- ) -> responses .JobList :
249
+ job_list : models .JobList = fastapi .Depends (client .get_jobs ),
250
+ ) -> models .JobList :
253
251
"""Show the list of submitted jobs."""
254
252
for job in job_list .jobs :
255
253
job .links = create_links_to_job (job = job , request = request )
@@ -269,11 +267,11 @@ def get_jobs(
269
267
270
268
def create_get_job_endpoint (
271
269
client : clients .BaseClient ,
272
- ) -> Callable [[fastapi .Request ], responses .StatusInfo ]:
270
+ ) -> Callable [[fastapi .Request ], models .StatusInfo ]:
273
271
def get_job (
274
272
request : fastapi .Request ,
275
- job : responses .StatusInfo = fastapi .Depends (client .get_job ),
276
- ) -> responses .StatusInfo :
273
+ job : models .StatusInfo = fastapi .Depends (client .get_job ),
274
+ ) -> models .StatusInfo :
277
275
"""Show the status of a job."""
278
276
job .links = create_links_to_job (job = job , request = request )
279
277
@@ -284,10 +282,10 @@ def get_job(
284
282
285
283
def create_get_job_results_endpoint (
286
284
client : clients .BaseClient ,
287
- ) -> Callable [[], responses .Results ]:
285
+ ) -> Callable [[], models .Results ]:
288
286
def get_job_results (
289
- job_results : responses .Results = fastapi .Depends (client .get_job_results ),
290
- ) -> responses .Results :
287
+ job_results : models .Results = fastapi .Depends (client .get_job_results ),
288
+ ) -> models .Results :
291
289
"""Show results of a job."""
292
290
return job_results
293
291
@@ -296,10 +294,10 @@ def get_job_results(
296
294
297
295
def create_delete_job_endpoint (
298
296
client : clients .BaseClient ,
299
- ) -> Callable [[], responses .StatusInfo ]:
297
+ ) -> Callable [[], models .StatusInfo ]:
300
298
def delete_job (
301
- job : responses .StatusInfo = fastapi .Depends (client .delete_job ),
302
- ) -> responses .StatusInfo :
299
+ job : models .StatusInfo = fastapi .Depends (client .delete_job ),
300
+ ) -> models .StatusInfo :
303
301
"""Cancel a job."""
304
302
return job
305
303
0 commit comments