コード例 #1
0
ファイル: plans.py プロジェクト: ygjb/minion-backend
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))