def create_plan(): plan = request.json # Verify incoming plan if Plan.get_plan(plan['name']) is not None: return jsonify(success=False, reason='plan-already-exists') workflows = create_workflows_from_json(plan['workflow']) if not workflows: return jsonify(success=False, reason='invalid-plan-exists') # Create the plan new_plan = Plan() new_plan.name = plan['name'] new_plan.description = plan['description'] db.session.add(new_plan) db.session.commit() for workflow in workflows: db.session.add(workflow) new_plan.workflows.append(workflow) db.session.commit() plan = Plan.get_plan(new_plan.name) # Return the new plan if not plan: return jsonify(success=False) return jsonify(success=True, plan=sanitize_plan(plan))