Beispiel #1
0
 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
Beispiel #2
0
 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()
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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()