def delete(self): parameter = orm_utils.get_or_404_parameter_with_uid(1) resource_utils.perform_orm_commit_or_500(parameter, "delete") response_content = { 'message': 'parameter set deleted', } return response_content
def patch(self): parameter_set = orm_utils.get_or_404_parameter_set(1) edit_parameter_set_info = UPDATE_PARAMETER_SET_SCHEMA.dump( parameter_set) patch_data = request.get_json() # @UndefinedVariable if not patch_data: abort(400, "No updates provided with request") edit_parameter_set_info.update(patch_data) validation_errors = UPDATE_PARAMETER_SET_SCHEMA.validate( edit_parameter_set_info) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") for key in patch_data: new_value = PARAMETER_SET_SCHEMA.fields[key].deserialize( edit_parameter_set_info[key]) setattr(parameter_set, key, new_value) resource_utils.perform_orm_commit_or_500(parameter_set, operation="update") parameter_set_info = PARAMETER_SET_SCHEMA.dump(parameter_set) response_content = { 'message': 'parameter set updated', "parameter_set": parameter_set_info, "parameter_set_url": url_for('.parameter_set'), "parameter_list_url": url_for('.parameter_list'), } return response_content
def delete(self, uid): parameter = orm_utils.get_or_404_parameter_with_uid(uid) deleted_name = parameter.name resource_utils.perform_orm_commit_or_500(parameter, "delete") response_content = { 'message': f'parameter {uid} deleted', 'deleted_parameter_name': deleted_name, "parameter_set_url": url_for('.parameter_set'), } return response_content
def delete(self, uid): value = orm_utils.get_or_404_value_with_uid(uid) deleted_value = VALUE_SCHEMA.dump(value) puid = value.parameter.uid resource_utils.perform_orm_commit_or_500(value, "delete") response_content = { 'message': f'value {uid} deleted', 'deleted_value': deleted_value, "parameter_url": url_for('.parameter', uid=puid), } return response_content
def post(self): post_data = request.get_json() # @UndefinedVariable validation_errors = UPDATE_VALUE_SCHEMA.validate(post_data) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") value_info = { key: UPDATE_VALUE_SCHEMA.fields[key].deserialize(post_data[key]) for key in post_data } new_value = orm_utils.create_value(**value_info) resource_utils.perform_orm_commit_or_500(new_value) new_id = new_value.uid response_content = { 'message': 'new value created', 'new_value': VALUE_SCHEMA.dump(new_value), 'new_value_url': url_for('.value', uid=new_id), "value_List_url": url_for('.value_list'), } return response_content, 201
def put(self, uid): parameter = orm_utils.get_or_404_parameter_with_uid(uid) put_data = request.get_json() # @UndefinedVariable put_data.update({"numItems": len(parameter)}) validation_errors = MOVE_VALUE_SCHEMA.validate(put_data) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") old_index = put_data['oldIndex'] new_index = put_data['newIndex'] moved_value = parameter.pop(old_index) parameter.insert(new_index, moved_value) resource_utils.perform_orm_commit_or_500(parameter, operation="update") response_content = { 'message': 'value moved within list', 'old_index': old_index, 'new_index': new_index, 'moved_value_uri': url_for('.value', uid=moved_value.uid), } return response_content
def put(self): parameter_set = orm_utils.get_or_404_parameter_set() put_data = request.get_json() # @UndefinedVariable put_data.update({"numItems": len(parameter_set)}) validation_errors = MOVE_PARAMETER_SCHEMA.validate(put_data) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") old_index = put_data['oldIndex'] new_index = put_data['newIndex'] moved_parameter = parameter_set.pop(old_index) parameter_set.insert(new_index, moved_parameter) resource_utils.perform_orm_commit_or_500(parameter_set, operation="update") response_content = { 'message': 'parameter moved within list', 'old_index': old_index, 'new_index': new_index, 'moved_parameter_url': url_for('.parameter', uid=moved_parameter.uid), "parameter_List_url": url_for('.parameter_list'), } return response_content
def post(self): parameter_set = orm_utils.get_or_404_parameter_set() post_data = request.get_json() # @UndefinedVariable validation_errors = NEW_PARAMETER_SCHEMA.validate(post_data) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") value_info = { key: NEW_PARAMETER_SCHEMA.fields[key].deserialize(post_data[key]) for key in post_data } new_parameter = orm_utils.create_parameter(**value_info) parameter_set.append(new_parameter) resource_utils.perform_orm_commit_or_500(parameter_set) new_id = new_parameter.uid response_content = { 'message': 'new parameter created', 'new_parameter': PARAMETER_SCHEMA.dump(new_parameter), 'new_parameter_url': url_for('.parameter', uid=new_id), "parameter_list_url": url_for('.parameter_list'), 'parameter_set_url': url_for('.parameter_set'), } return response_content, 201
def delete(self, puid, euid): parameter = orm_utils.get_or_404_parameter_with_uid(puid) excluded_parameter = orm_utils.get_or_404_parameter_with_uid(euid) if excluded_parameter not in parameter.excluded: abort( 400, f"Parameter with uid={euid} is not in the exclusion list of parameter with uid={puid}" ) parameter.restore_interaction_with(excluded_parameter) resource_utils.perform_orm_commit_or_500( [parameter, excluded_parameter]) excluded_content = PARAMETER_EXCLUSION_SCHEMA.dump(parameter) excluded_by_content = PARAMETER_EXCLUSION_SCHEMA.dump( excluded_parameter) response_content = { 'message': 'parameter exclusion deleted', 'parameter_excludes': excluded_content, 'parameter_excluded_by': excluded_by_content, 'parameter_url': url_for('.parameter', uid=puid), 'excluded_parameter_url': url_for('.parameter', uid=euid), } return response_content, 200
def post(self, uid): parameter = orm_utils.get_or_404_parameter_with_uid(uid) edit_parameter_info = UPDATE_PARAMETER_SCHEMA.dump(parameter) patch_data = request.get_json() # @UndefinedVariable if not patch_data: abort(400, "No updates provided with request") edit_parameter_info.update(patch_data) validation_errors = UPDATE_PARAMETER_SCHEMA.validate( edit_parameter_info) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") for key in patch_data: new_value = PARAMETER_SCHEMA.fields[key].deserialize( edit_parameter_info[key]) setattr(parameter, key, new_value) resource_utils.perform_orm_commit_or_500(parameter, operation="update") parameter_info = PARAMETER_EXCLUSION_SCHEMA.dump(parameter) response_content = { 'message': 'parameter exclusion created', "parameter": parameter_info, "parameter_url": url_for('.parameter', uid=uid), } return response_content, 201
def post(self, uid): parameter = orm_utils.get_or_404_parameter_with_uid(uid) post_data = request.get_json() # @UndefinedVariable validation_errors = UPDATE_VALUE_SCHEMA.validate(post_data) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") value_info = { key: UPDATE_VALUE_SCHEMA.fields[key].deserialize(post_data[key]) for key in post_data } new_value = orm_utils.create_value(**value_info) parameter.append(new_value) resource_utils.perform_orm_commit_or_500(parameter, operation="update") new_id = new_value.uid response_content = { 'message': 'new value created', 'new_value': VALUE_SCHEMA.dump(new_value), 'new_value_url': url_for('.value', uid=new_id), 'parameter_url': url_for('.parameter', uid=uid), 'parameter_value_list_url': url_for('.parameter_value_list', uid=uid), } return response_content, 201
def patch(self, uid): value = orm_utils.get_or_404_value_with_uid(uid) edit_value_info = UPDATE_VALUE_SCHEMA.dump(value) patch_data = request.get_json() # @UndefinedVariable if not patch_data: abort(400, "No updates provided with request") edit_value_info.update(patch_data) validation_errors = UPDATE_VALUE_SCHEMA.validate(edit_value_info) if validation_errors: abort(400, f"Validation error(s): {validation_errors}") for key in patch_data: new_value = VALUE_SCHEMA.fields[key].deserialize( edit_value_info[key]) setattr(value, key, new_value) resource_utils.perform_orm_commit_or_500(value, operation="update") value_info = VALUE_SCHEMA.dump(value) puid = value_info['parameter'] response_content = { 'message': 'value updated', "value": value_info, "value_url": url_for('.value', uid=uid), "parameter_url": url_for('.parameter', uid=puid), } return response_content