def trash_document(cls, type_id, reg_details): """Remove and purge a document from the system.""" try: document = cls.query.filter_by(document_id=type_id, dereg_id=reg_details.id).one() cls.delete(document.id) Utilities.remove_file(document.filename, reg_details.tracking_id) except Exception: raise Exception
def trash_document(cls, type_id, reg_details): """Purge documents of a request.""" try: document = cls.query.filter_by( document_id=type_id, reg_details_id=reg_details.id).one() cls.delete(document.id) Utilities.remove_file(document.filename, reg_details.tracking_id) except Exception: raise Exception
def test_remove_file(app, session): # pylint: disable=unused-argument """Verify that the remove function works correctly.""" tracking_id = uuid.uuid4() complete_path = os.path.join(app.config['DRS_UPLOADS'], '{0}'.format(tracking_id)) Utilities.create_directory(tracking_id) assert os.path.isdir(complete_path) response = Utilities.remove_file('file.txt', tracking_id) assert response == 'file is missing'
def put(): """PUT method handler, updates registration requests.""" reg_id = request.form.to_dict().get('reg_id', None) if not reg_id or not reg_id.isdigit() or not RegDetails.exists(reg_id): return Response(app.json_encoder.encode(REG_NOT_FOUND_MSG), status=CODES.get("UNPROCESSABLE_ENTITY"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) args = RegDetails.curate_args(request) schema = RegistrationDetailsUpdateSchema() file = request.files.get('file') reg_details = RegDetails.get_by_id(reg_id) try: tracking_id = reg_details.tracking_id if reg_details: args.update({ 'status': reg_details.status, 'reg_id': reg_details.id, 'processing_status': reg_details.processing_status, 'report_status': reg_details.report_status }) validation_errors = schema.validate(args) if validation_errors: return Response(app.json_encoder.encode(validation_errors), status=CODES.get("UNPROCESSABLE_ENTITY"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) if args.get('close_request', None) == 'True': response = RegDetails.close(reg_details) if isinstance(response, dict): return Response( app.json_encoder.encode(response), status=CODES.get("UNPROCESSABLE_ENTITY"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) else: response = schema.dump(response, many=False).data return Response( json.dumps(response), status=CODES.get("OK"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) if file: Utilities.remove_file(reg_details.file, tracking_id) response = Utilities.store_file(file, tracking_id) if response: return Response( json.dumps(response), status=CODES.get("UNPROCESSABLE_ENTITY"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) response = Utilities.process_reg_file(file.filename, tracking_id, args) if isinstance(response, list): response = RegDetails.update(args, reg_details, True) else: return Response( app.json_encoder.encode(response), status=CODES.get("UNPROCESSABLE_ENTITY"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) else: response = RegDetails.update(args, reg_details, False) db.session.commit() response = schema.dump(response, many=False).data return Response(json.dumps(response), status=CODES.get("OK"), mimetype=MIME_TYPES.get("APPLICATION_JSON")) except Exception as e: # pragma: no cover db.session.rollback() app.logger.exception(e) data = { 'message': [ _('Registration update request failed, check upload path or database connection' ) ] } return Response(app.json_encoder.encode(data), status=CODES.get('INTERNAL_SERVER_ERROR'), mimetype=MIME_TYPES.get('APPLICATION_JSON')) finally: db.session.close()