def get(self): parse = reqparse.RequestParser() parse.add_argument('filename', type=str, location='args', help='Filename is required', required=True) parse.add_argument('userid', type=str, location='args', help='UserId is required', required=True) args = parse.parse_args() filename = args['filename'] userid = args['userid'] filepath = os.path.join(config.download_folder, filename) userfiles = UserFiles.objects(filename=filename, created_by=userid) if userfiles is not None and len(userfiles) > 0: if (os.path.exists(filepath)): result = send_file(filepath, as_attachment=True) result.headers["x-suggested-filename"] = filename return result else: res = CustomResponse(Status.ERROR_NOTFOUND_FILE.value, None) return res.getresjson(), 400 else: res = CustomResponse(Status.ERROR_NOTFOUND_FILE.value, None) return res.getresjson(), 400
def post(self): body = request.get_json() userid = request.headers.get('userid') if 'pages' not in body or 'process_identifier' not in body or userid is None: res = CustomResponse(Status.ERR_GLOBAL_MISSING_PARAMETERS.value, None) return res.getresjson(), 400 results = body['pages'] process_identifier = body['process_identifier'] obj_to_be_saved = [] for result in results: page_data = {} page_data['page_no'] = result['page_no'] page_data['page_width'] = result['page_width'] page_data['page_height'] = result['page_height'] for block_type in BLOCK_TYPES: if result[block_type['key']] is not None: for data in result[block_type['key']]: obj_to_be_saved = self.make_obj( process_identifier, page_data, data, block_type['key'], obj_to_be_saved, userid) file_content_instances = [ FileContent(**data) for data in obj_to_be_saved ] FileContent.objects.insert(file_content_instances) res = CustomResponse(Status.SUCCESS.value, None) return res.getres()
def post(self): parse = reqparse.RequestParser() parse.add_argument('file', type=werkzeug.datastructures.FileStorage, location='files',help='File is required', required=True) args = parse.parse_args() f = args['file'] # file_real_name, file_extension = os.path.splitext(f.filename) # filename = str(uuid.uuid4())+file_extension # filepath = os.path.join(config.download_folder, filename) # f.save(filepath) # with open(filepath, 'rb') as f: # filetype = magic.from_buffer(f.read(), mime=True) # f.close() # if filetype in ALLOWED_FILE_TYPES: # userfile = UserFiles(created_by=request.headers.get('ad-userid'), # filename=filename,file_real_name=file_real_name+file_extension, created_on=datetime.now()) # userfile.save() # res = CustomResponse(Status.SUCCESS.value, filename) # return res.getres() # else: # f.close() # os.remove(filepath) # res = CustomResponse(Status.ERROR_UNSUPPORTED_FILE.value, None) # return res.getresjson(), 400 file_real_name, file_extension = os.path.splitext(f.filename) fileallowed = False filename = str(uuid.uuid4())+file_extension filepath = os.path.join(config.download_folder, filename) for allowed_file_extension in ALLOWED_FILE_EXTENSIONS: if file_extension.endswith(allowed_file_extension): fileallowed = True break if fileallowed: f.save(filepath) file_size = os.stat(filepath).st_size file_size = file_size/(1024*1024) if file_size > 20: os.remove(filepath) res = CustomResponse(Status.ERROR_FILE_SIZE.value, None) return res.getresjson(), 400 userfile = UserFiles(created_by=request.headers.get('ad-userid'), filename=filename,file_real_name=file_real_name+file_extension, created_on=datetime.now()) userfile.save() res = CustomResponse(Status.SUCCESS.value, filename) return res.getres() else: res = CustomResponse(Status.ERROR_UNSUPPORTED_FILE.value, None) return res.getresjson(), 400
def post(self): body = request.get_json() log_info("request received", MODULE_CONTEXT) try: record_id = body['record_id'] user_id = body['user_id'] if 'record_id' not in body or record_id is None or 'user_id' not in body or user_id is None: res = CustomResponse(Status.ERR_GLOBAL_MISSING_PARAMETERS.value,None) return res.getresjson(), 400 out_translated_doc, xlsx_file, txt_file = document_saving(record_id, user_id, DOWNLOAD_FOLDER) log_info("document saved successfully", MODULE_CONTEXT) res = CustomResponse(Status.SUCCESS.value, out_translated_doc, xlsx_file, txt_file) return res.getres() except ServiceError as e: log_exception("Error occured at resource level.", MODULE_CONTEXT, e) res = CustomResponse(Status.OPERATION_NOT_PERMITTED.value,None) return res.getresjson(), 400
def post(self): try: log.info("Uploading file...") parse = reqparse.RequestParser() parse.add_argument('file', type=werkzeug.datastructures.FileStorage, location='files', help='File is required', required=True) args = parse.parse_args() f = args['file'] log.info("Filename: " + str(f.filename)) file_real_name, file_extension = os.path.splitext(f.filename) fileallowed = False filename = str(uuid.uuid4()) + file_extension filepath = os.path.join(config.download_folder, filename) for allowed_file_extension in ALLOWED_FILE_EXTENSIONS: if file_extension.endswith(allowed_file_extension): fileallowed = True break if fileallowed: f.save(filepath) file_size = os.stat(filepath).st_size file_size = file_size / (1024 * 1024) if file_size > 20: os.remove(filepath) res = CustomResponse(Status.ERROR_FILE_SIZE.value, None) return res.getresjson(), 400 userfile = UserFiles( created_by=request.headers.get('ad-userid'), filename=filename, file_real_name=file_real_name + file_extension, created_on=datetime.now()) userfile.save() log.error("SUCCESS: File Uploaded -- " + str(f.filename)) res = CustomResponse(Status.SUCCESS.value, filename) return res.getres() else: log.error("ERROR: Unsupported File -- " + str(f.filename)) res = CustomResponse(Status.ERROR_UNSUPPORTED_FILE.value, None) return res.getresjson(), 400 except Exception as e: log.exception("Exception while uploading the file: " + str(e)) res = CustomResponse(Status.FAILURE.value, None) return res.getresjson(), 500
def get(self): parse = reqparse.RequestParser() parse.add_argument('filename', type=str, location='args',help='Filename is required', required=True) args = parse.parse_args() filename = args['filename'] filepath = os.path.join(config.download_folder, filename) if(os.path.exists(filepath)): with open(filepath) as json_file: data = json.load(json_file) res = CustomResponse(Status.SUCCESS.value, data) return res.getres() else: res = CustomResponse(Status.ERROR_NOTFOUND_FILE.value, None) return res.getresjson(), 400
def post(self): body = request.get_json() userid = request.headers.get('ad-userid') if 'blocks' not in body or userid is None: res = CustomResponse(Status.ERR_GLOBAL_MISSING_PARAMETERS.value,None) return res.getresjson(), 400 blocks = body['blocks'] obj_to_be_saved = [] for block in blocks: if 'block_identifier' in block: file_content = FileContent.objects(block_identifier=block['block_identifier']) if len(file_content) == 0: obj_to_be_saved = [] obj_to_be_saved = make_obj(block['job_id'], block['page_info'], block, block['data_type'], obj_to_be_saved, userid, block['file_locale'], block['record_id']) file_content_instances = [FileContent(**data) for data in obj_to_be_saved] FileContent.objects.insert(file_content_instances) else: file_content.update(set__data=block) res = CustomResponse(Status.SUCCESS.value, None) return res.getres()