22import os
33from io import BytesIO
44from multiprocessing import Process
5- from typing import Dict , List , Tuple
5+ from typing import Dict , List , Tuple , Optional
66
7- from flask import jsonify , request , send_file
7+ from flask import jsonify , request , send_file , Response
88from werkzeug .utils import secure_filename
99
1010from servc .svc import Middleware
1919from servc .util import findType
2020
2121
22- def returnError (message : str , error : StatusCode = StatusCode .METHOD_NOT_FOUND ):
22+ def returnError (message : str , error : StatusCode = StatusCode .METHOD_NOT_FOUND ) -> Response :
2323 return jsonify (getErrorArtifact ("" , message , error ))
2424
2525
@@ -48,14 +48,16 @@ def __init__(
4848 def get_upload_file_path (self , extra_params : Dict , fname : str ) -> Tuple [str , str ]:
4949 return self ._uploadcontainer , secure_filename (fname )
5050
51- def _postMessage (self , extra_params : Dict | None = None ):
51+ def _postMessage (self , extra_params : Optional [ Dict ] = None ):
5252 if request .method == "POST" and len (list (request .files )) > 0 :
5353 if extra_params is None :
5454 extra_params = {}
5555 extra_params ["files" ] = []
5656
5757 for filekey in list (request .files ):
5858 file = request .files [filekey ]
59+ if file .filename is None :
60+ continue
5961 container , remote_filename = self .get_upload_file_path (
6062 extra_params , file .filename
6163 )
@@ -68,14 +70,14 @@ def _postMessage(self, extra_params: Dict | None = None):
6870
6971 return super ()._postMessage (extra_params )
7072
71- def _getFile (self , id : str ):
73+ def _getFile (self , id : str ) -> Response :
7274 try :
7375 response = self ._cache .getKey (id )
7476 except json .JSONDecodeError :
7577 return returnError ("Bad Response" , StatusCode .INVALID_INPUTS )
7678
7779 if isinstance (response , dict ):
78- art : ResponseArtifact = response # type: ignore
80+ art : ResponseArtifact = response # type: ignore
7981 if "file" in art ["responseBody" ]:
8082 data = self ._blobStorage .get_file (
8183 art ["responseBody" ].get ("container" , self ._uploadcontainer ),
@@ -94,7 +96,7 @@ def _getFile(self, id: str):
9496 )
9597 return returnError ("File not found" , StatusCode .INVALID_INPUTS )
9698
97- def bindRoutes (self ):
99+ def bindRoutes (self ) -> None :
98100 super ().bindRoutes ()
99101 self ._server .add_url_rule (
100102 "/fid/<id>" , "_getFile" , self ._getFile , methods = ["GET" ]
0 commit comments