def driver_app_list(): # Variables for database app_db = DriverApplicationRepository(config.DATA_URL) # Application apps = app_db.get_all_apps() # Render View return render_template("driver-app-list.html", apps=apps)
def driver_app_update(): if request.method == api.post: # Init Resource Manager res_man = ResourceManager(config.RES_PATH, config.TEMP_PATH) try: from backend.model.helper import app_helper index = request.form[app_helper.FIELD_ID] except BaseError as e: traceback.print_exc() error_response = e.generate_error() logging.error(error_response) return error_response except Exception as e: traceback.print_exc() error_response = BaseError.generate_base_error(data=e.args) logging.error(msg=error_response) return error_response try: # Variables for database app_db = DriverApplicationRepository(config.DATA_URL) # Application old_app = app_db.get_app_by_id(index) # App from index old_bundle = old_app.bundle # old sku print(f"form {request.form}") result = driver_app_helper.generate_app_json( request.form) # Form -> JSON print(f"result {result}") application = driver_app_helper.parse_app_by_json( result) # JSON -> App application.id = index # Commit DB app_db.update_app(application) # Update app in DB except Exception as e: return DataBaseError(subcode=DataBaseError.duplicate_code, data=e.args).generate_error() try: res_man.update_app_res(request.files, old_bundle, application.bundle) # Update Res ResourceManager.create_app_icon(request.files, config.STATIC_PATH, application.bundle) return redirect(f"/driver_app_info/{index}") except BaseError as e: traceback.print_exc() error_response = e.generate_error() logging.error(error_response) return error_response return redirect(api.get_app_list)
def build_update_driver(): # Variables for database app_db = DriverApplicationRepository(config.DATA_URL) logging.info("Build updating " + str(request.form)) data = request.form app_index = validate_field(data["app_index"]) status = validate_field(data["status"]) # TODO REWORK THIS! It is not best practices application = app_db.get_app_by_id(app_index) application.status = status app_db.update_app(application) return ""
def app_delete(): if request.method == api.post: form = request.form index = validate_field(form["id"]) app_db = DriverApplicationRepository(config.DATA_URL) res_man = ResourceManager(config.RES_PATH, config.TEMP_PATH) application = app_db.get_app_by_id(index) # App DICT from DB app_db.delete_app(application) res_man.delete_res(application.bundle) # Delete app res return redirect(api.get_app_list)
def driver_app_save(): if request.method == api.post: try: # Variables for database app_db = DriverApplicationRepository(config.DATA_URL) # Init Resource Manager res_man = ResourceManager(config.RES_PATH, config.TEMP_PATH) # Application result = driver_app_helper.generate_app_json( request.form) # Form -> JSON print(result) new_app = driver_app_helper.parse_app_by_json( result) # JSON -> App old_app = app_db.get_app_by_bundle(new_app.bundle) # Get Old App # Redirect if exist if old_app: return BaseError.generate_base_error( f"Application with Bundle - {new_app.bundle} already exist" ) try: app_db.create_app(new_app) # Create app in DB except Exception as e: return BaseError.generate_base_error( f"Error while saving application {e.args}") if request.files: try: res_man.create_app_res( request.files, new_app.bundle) # Create Resource # TODO BUNDLE except BaseError as e: traceback.print_exc() res_man.delete_res( new_app.bundle) # Delete Resource if Error error_response = e.generate_error() logging.error(error_response) return error_response except Exception as e: traceback.print_exc() error_response = BaseError.generate_base_error(data=e.args) logging.error(error_response) return error_response return BuildAction.create_action_build( action=BaseAction.REDIRECT_ACTION, subcode=BuildAction.BUILD_CREATED, data=BuildAction.data_created_build(api_driver_app_list))
def driver_app_build(): if request.method == api.post: logging.info(request.form) try: form = request.form build_type = validate_field(form["build_type"]) index = validate_field(form["id"]) from backend.model.helper import build_helper build_params = build_helper.generate_driver_build( form, config.ROOT_BUNDLE_DRIVER) logging.info(build_params) except BaseError as e: traceback.print_exc() error_response = e.generate_error() logging.error(error_response) return error_response # Variables for database app_db = DriverApplicationRepository(config.DATA_URL) application = app_db.get_app_by_id(index) # App DICT from DB res_man = ResourceManager(config.RESOURCE_PATH, config.TEMP_PATH) res_saved = res_man.validate_resources(application.bundle) print(res_saved) producer = BuildProducer(config.QUEUE_NAME) producer.connect() message = BuildProducer.generate_driver_message(application, build_params, build_type=build_type) logging.info("For rabbit producer generated Message {%s}" % message) producer.send(message=message) producer.disconnect() app_db.update_app(application) return BuildAction.create_action_build( action=BaseAction.REDIRECT_ACTION, subcode=BuildAction.BUILD_CREATED, data=BuildAction.data_created_build(api_driver_app_list))