def getRequestFileInstanceFromReqForm(): try: request_file_from_form = request.files['requestFile'] return SwitchingReportRequestFile(request_file_from_form) except KeyError as key_exc: handleGeneralExceptions(key_exc, "'requestFile' wasn't found in request form.")
def getSwitchingReportServiceDataFromReqForm( is_update: bool, switching_report: SwitchingReport = None): try: if not is_update: creation_date = dt.now() modified_date = None else: modified_date = dt.now() creation_date = switching_report.creation_date report_header = request.form['switchingReportHeader'] work_type = request.form['switchingReportWorkType'] customer = request.form['switchingCustomer'] shift_composition = request.form['shiftComp'] comment = request.form['switchingReportComment'] remarks = request.form['switchingReportRemarks'] service_data = SwitchingReportServiceData(creation_date, modified_date, report_header, work_type, customer, shift_composition, comment, remarks) return service_data except KeyError as key_exc: handleGeneralExceptions( key_exc, "Some of the service data keys weren't found in request form.")
def uploadRequestFile(upload_folder, request_file:SwitchingReportRequestFile, report_data:SwitchingReportServiceData): try: upload_folder = upload_folder + f'/{report_data.work_type}/{report_data.creation_date.strftime("%y_%m_%d")}' if not os.path.isdir(os.path.join(os.getcwd(), upload_folder)): os.makedirs(os.path.join(os.getcwd(), upload_folder)) request_file.request_file_instance.save(os.path.join(os.getcwd(), upload_folder, request_file.request_file_instance.filename)) except Exception as exc: handleGeneralExceptions(exc, "'Request file for this switching report was set, but not physically saved' error occured.")
def getConfigFromJson(): try: with open('cfg/config.json', 'r', encoding='utf-8') as read_json_config: config_json = json.load(read_json_config) return config_json except FileNotFoundError as exc: handleGeneralExceptions(exc, "Log file wasn't found.")
def getTranslationInstanceFromReqForm(): try: start_time = dt.strptime(request.form['translationStartTime'], '%Y-%m-%dT%H:%M') end_time = dt.strptime(request.form['translationEndTime'], '%Y-%m-%dT%H:%M') translation = Translation(start_time, end_time) return translation except KeyError as key_exc: handleGeneralExceptions( key_exc, "Some of the translation data keys weren't found in request form.")
def getReportingPeriodFromFilterForm(): try: filter_from_date = dt.strptime(request.form['sortStartTime'], '%Y-%m-%dT%H:%M') filter_to_date = dt.strptime(request.form['sortEndTime'], '%Y-%m-%dT%H:%M') days = (filter_to_date - filter_from_date).days return (filter_from_date, filter_to_date, days) except KeyError as key_exc: handleGeneralExceptions( key_exc, "'sortStartTime' or 'sortEndTime' wasn't found in request form.") except ValueError as val_exc: handleGeneralExceptions( val_exc, "'sortStartTime' or 'sortEndTime' have incorrect format.")
def getSwitchingInstanceFromReqForm(): try: switching_source = request.form['switchingSource'] switching_destination = request.form['switchingDestination'] switching_reserve_source = request.form['reserveSwitchingSource'] switching_reserve_destination = request.form[ 'reserveSwitchingDestination'] switching = Switching(switching_source, switching_destination, switching_reserve_source, switching_reserve_destination) return switching except KeyError as key_exc: handleGeneralExceptions( key_exc, "Some of the switching data keys weren't found in request form.")
def isFileInRequestForm(request_file:SwitchingReportRequestFile): try: return request_file.request_file_instance.filename == '' except AttributeError as exc: handleGeneralExceptions(exc, "Request file was NoneType, while trying to get it from request form.")
def getSearchStringFromSearchForm(): try: return request.form['search_string'] except KeyError as key_exc: handleGeneralExceptions( key_exc, "'search_string' wasn't found in request form.")
def wrapper(*args, **kwargs): try: func(*args, **kwargs) except SQLAlchemyOperationalError as exc: handleGeneralExceptions(exc, 'Database is not available, check database connection.')