@@ -66,33 +66,39 @@ async def transcoder_log_by_id(id: str):
6666 return TranscoderLog .query .filter_by (transcoder_log_id = id ).first ()
6767
6868# PUT /ui/incoming/{cbor}/hex
69- @router .put ("/ui/incoming/{cbor }/hex" , status_code = status .HTTP_200_OK )
70- async def transcoder_put_cbor ( cbor : str ):
71- msg = json .dumps ({'uri' : cbor })
69+ @router .put ("/ui/incoming/{input_cbor }/hex" , status_code = status .HTTP_200_OK )
70+ async def transcoder_put_input_cbor ( input_cbor : str ):
71+ msg = json .dumps ({'uri' : input_cbor })
7272 transcoder_log_id = None
7373 with get_session () as session :
74- curr_uri = TranscoderLog .query .filter_by ( input_string = cbor ).first ()
74+ curr_uri = TranscoderLog .query .filter ( or_ ( TranscoderLog . input_string == input_cbor , TranscoderLog . cbor == input_cbor ) ).first ()
7575 if curr_uri is None :
76- c1 = TranscoderLog (input_string = cbor , parsed_as = 'pending' )
76+ c1 = TranscoderLog (input_string = input_cbor , parsed_as = 'pending' )
7777 session .add (c1 )
7878 session .flush ()
7979 session .refresh (c1 )
8080 transcoder_log_id = c1 .transcoder_log_id
8181 session .commit ()
82+ status = "Submitted ARI to transcoder"
83+ else :
84+ # the input_ari has already been submitted
85+ status = "ARI previously submitted, check log"
86+ transcoder_log_id = curr_uri .transcoder_log_id
8287
8388 logger .info ('PUBLISH to transcode/CoreFacing/Outgoing, msg = %s' % msg )
8489 MQTT_CLIENT .publish ("transcode/CoreFacing/Outgoing" , msg )
8590
86- return {"id" : transcoder_log_id }
91+ return {"id" : transcoder_log_id , "status" : status }
92+
8793
88- # get /ui/incoming/{cbor}/hex
8994@router .get ("/ui/incoming/await/{cbor}/hex" , status_code = status .HTTP_200_OK )
9095async def transcoder_put_cbor_await (cbor : str ):
9196 curr_uri = ""
9297 msg = json .dumps ({'uri' : cbor })
9398 transcoder_log_id = None
9499 with get_session () as session :
95- curr_uri = TranscoderLog .query .filter_by (input_string = cbor ).first ()
100+ curr_uri = TranscoderLog .query .filter (or_ (TranscoderLog .input_string == cbor , TranscoderLog .cbor == cbor )).first ()
101+
96102 if curr_uri is None :
97103 c1 = TranscoderLog (input_string = cbor , parsed_as = 'pending' )
98104 session .add (c1 )
@@ -115,27 +121,29 @@ async def transcoder_put_cbor_await(cbor: str):
115121 while True :
116122 with get_session () as session :
117123 curr_uri = TranscoderLog .query .filter_by (TranscoderLog .transcoder_log_id == transcoder_log_id ).first ()
118- if curr_uri .parsed_as == "CBOR " :
119- curr_uri = curr_uri .uri
120- break
121- if curr_uri . parsed_as == "ERROR" :
122- curr_uri = "ARI://BADARI"
123- break
124+ if curr_uri .parsed_as != "pending " :
125+ if curr_uri .parsed_as == "ERROR" :
126+ curr_uri = "ARI://BADARI"
127+ else :
128+ curr_uri = curr_uri . uri
129+ break
124130 time .sleep (1 )
125131
126132
127133 return {"data" : curr_uri }
128134
129135# PUT /ui/incoming/str Body is str ARI to send to transcoder
130- @router .get ("/ui/incomin /await/str" , status_code = status .HTTP_200_OK )
131- def transcoder_put_await_str (ari : str ):
132- ari = ari .strip ()
133- msg = json .dumps ({"uri" : ari })
136+ @router .get ("/ui/incoming /await/str" , status_code = status .HTTP_200_OK )
137+ async def transcoder_put_await_str (input_ari : str ):
138+ input_ari = input_ari .strip ()
139+ msg = json .dumps ({"uri" : input_ari })
134140 transcoder_log_id = None
141+ curr_uri = None
135142 with get_session () as session :
136- curr_uri = TranscoderLog .query .filter_by (input_string = ari ).first ()
143+ curr_uri = TranscoderLog .query .filter (or_ (TranscoderLog .input_string == input_ari ,TranscoderLog .ari == input_ari , TranscoderLog .cbor == input_ari )).first ()
144+
137145 if curr_uri is None :
138- c1 = TranscoderLog (input_string = ari , parsed_as = 'pending' )
146+ c1 = TranscoderLog (input_string = input_ari , parsed_as = 'pending' )
139147 session .add (c1 )
140148 session .flush ()
141149 session .refresh (c1 )
@@ -145,45 +153,55 @@ def transcoder_put_await_str(ari: str):
145153 MQTT_CLIENT .publish ("transcode/CoreFacing/Outgoing" , msg )
146154 else :
147155 transcoder_log_id = curr_uri .transcoder_log_id
156+ if curr_uri .parsed_as != "pending" :
157+ if curr_uri .parsed_as == "ERROR" :
158+ curr_uri = "ARI://BADARI"
159+ else :
160+ curr_uri = curr_uri .uri
161+ return {"data" : curr_uri }
162+
148163
149164
150165 while (True ):
151166 with get_session () as session :
152167 curr_uri = TranscoderLog .query .filter_by (transcoder_log_id = transcoder_log_id ).first ()
153- if curr_uri .parsed_as == "URI " :
154- curr_uri = curr_uri .uri
155- break
156- if curr_uri . parsed_as == "ERROR" :
157- curr_uri = "ARI://BADARI"
158- break
159- time .sleep (1 )
168+ if curr_uri .parsed_as != "pending " :
169+ if curr_uri .parsed_as == "ERROR" :
170+ curr_uri = "ARI://BADARI"
171+ else :
172+ curr_uri = curr_uri . uri
173+ break
174+ time .sleep (1 )
160175
161176
162177 return {"data" : curr_uri }
163178
164179
165180# PUT /ui/incoming/str Body is str ARI to send to transcoder
166181@router .put ("/ui/incoming/str" , status_code = status .HTTP_200_OK )
167- def transcoder_put_str (ari : str ):
168- ari = ari .strip ()
169- msg = json .dumps ({"uri" : ari })
182+ async def transcoder_put_str (input_ari : str ):
183+ input_ari = input_ari .strip ()
184+ msg = json .dumps ({"uri" : input_ari })
170185 transcoder_log_id = None
171186 with get_session () as session :
172- curr_uri = TranscoderLog .query .filter_by ( input_string = ari ).first ()
187+ curr_uri = TranscoderLog .query .filter ( or_ ( TranscoderLog . input_string == input_ari , TranscoderLog . ari == input_ari , TranscoderLog . cbor == input_ari ) ).first ()
173188 if curr_uri is None :
174- c1 = TranscoderLog (input_string = ari , parsed_as = 'pending' )
189+ c1 = TranscoderLog (input_string = input_ari , parsed_as = 'pending' )
175190 session .add (c1 )
176191 session .flush ()
177192 session .refresh (c1 )
178193 transcoder_log_id = c1 .transcoder_log_id
179194 session .commit ()
195+ status = "Submitted ARI to transcoder"
180196 else :
197+ # the input_ari has already been submitted
198+ status = "ARI previously submitted, check log"
181199 transcoder_log_id = curr_uri .transcoder_log_id
182200
183201 logger .info ('PUBLISH to transcode/CoreFacing/Outgoing, msg = %s' % msg )
184202 MQTT_CLIENT .publish ("transcode/CoreFacing/Outgoing" , msg )
185203
186- return {"id" : transcoder_log_id }
204+ return {"id" : transcoder_log_id , "status" : status }
187205
188206
189207
0 commit comments