77 get_job_by_user_id ,
88 get_jobs_by_user_id ,
99 save_job_to_db ,
10- update_job_result_by_id ,
1110 update_job_status_by_id ,
1211)
1312from app .platforms .dispatcher import get_processing_platform
2120 ServiceDetails ,
2221)
2322
23+ from stac_pydantic import Collection
2424
2525INACTIVE_JOB_STATUSES = {
2626 ProcessingStatusEnum .CANCELED ,
@@ -50,7 +50,6 @@ def create_processing_job(
5050 user_id = user ,
5151 platform_job_id = job_id ,
5252 parameters = json .dumps (request .parameters ),
53- result_link = None ,
5453 service = request .service .model_dump_json (),
5554 upscaling_task_id = upscaling_task_id ,
5655 )
@@ -61,7 +60,6 @@ def create_processing_job(
6160 label = request .label ,
6261 status = record .status ,
6362 parameters = request .parameters ,
64- result_link = None ,
6563 )
6664
6765
@@ -74,11 +72,17 @@ def get_job_status(job: ProcessingJobRecord) -> ProcessingStatusEnum:
7472 return platform .get_job_status (job .platform_job_id , details )
7573
7674
77- def get_job_result_url (job : ProcessingJobRecord ) -> str :
78- logger .info (f"Retrieving job result for job: { job .platform_job_id } " )
79- platform = get_processing_platform (job .label )
80- details = ServiceDetails .model_validate_json (job .service )
81- return platform .get_job_result_url (job .platform_job_id , details )
75+ def get_processing_job_results (
76+ database : Session , job_id : int , user_id : str
77+ ) -> Collection | None :
78+ record = get_job_by_user_id (database , job_id , user_id )
79+ if not record :
80+ return None
81+
82+ logger .info (f"Retrieving job result for job: { record .platform_job_id } " )
83+ platform = get_processing_platform (record .label )
84+ details = ServiceDetails .model_validate_json (record .service )
85+ return platform .get_job_results (record .platform_job_id , details )
8286
8387
8488def _refresh_job_status (
@@ -105,19 +109,13 @@ def get_processing_jobs_by_user_id(
105109 if record .status not in INACTIVE_JOB_STATUSES :
106110 record = _refresh_job_status (database , record )
107111
108- # Update the result if the job is finished and results weren't retrieved yet
109- if record .status == ProcessingStatusEnum .FINISHED and not record .result_link :
110- result_link = get_job_result_url (record )
111- update_job_result_by_id (database , record .id , result_link )
112-
113112 jobs .append (
114113 ProcessingJobSummary (
115114 id = record .id ,
116115 title = record .title ,
117116 label = record .label ,
118117 status = record .status ,
119118 parameters = json .loads (record .parameters ),
120- result_link = record .result_link ,
121119 )
122120 )
123121 return jobs
@@ -141,7 +139,6 @@ def get_processing_job_by_user_id(
141139 status = record .status ,
142140 service = ServiceDetails .model_validate_json (record .service or "{}" ),
143141 parameters = json .loads (record .parameters or "{}" ),
144- result_link = record .result_link ,
145142 created = record .created ,
146143 updated = record .updated ,
147144 )
0 commit comments