def post(self): request_dict = request.get_json() if not request_dict: response = {'message': 'No input data provided'} return response, status.HTTP_400_BAD_REQUEST errors = contract_schema.validate(request_dict) if errors: return errors, status.HTTP_400_BAD_REQUEST try: rule_name = request_dict['rule']['name'] rule = Rule.query.filter_by(name=rule_name).first() if rule is None: # Create a new rule rule = Rule(name=rule_name, f_operand=request_dict['f_operand'], s_operand=request_dict['s_operand'], operator=request_dict['operator'], coefficient=request_dict['coefficient']) db.session.add(rule) # create a new contract contract = Contract(contract_name=request_dict['contract_name'], information=request_dict['information'], rule=rule) # requests.put('http://0.0.0.0/{port}/projects', jsonify={ # "project_name": 'project_name', # "contract_id": UUID, # status: status.HTTP_201_CREATED # }) contract.add(contract) query = Contract.query.get(contract.id) result = contract_schema.dump(query).data return result, status.HTTP_201_CREATED except SQLAlchemyError as e: db.session.rollback() resp = jsonify({"error": str(e)}) return resp, status.HTTP_400_BAD_REQUEST