예제 #1
0
 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
예제 #2
0
 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
예제 #3
0
 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
예제 #4
0
파일: value.py 프로젝트: awwilliams/tconfig
 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
예제 #5
0
 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
예제 #6
0
 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
예제 #7
0
 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
예제 #8
0
 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
예제 #9
0
 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
예제 #10
0
 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
예제 #11
0
 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
예제 #12
0
파일: value.py 프로젝트: awwilliams/tconfig
 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