Example #1
0
def edit_concept(concept, data):
    concept.name = data["concept_name"]
    concept.filename = data["filename"]
    call_step_routes(data, concept.id, "concept")
    create_schema_json(concept, "concepts")

    return
Example #2
0
def update_card_cdn(cards):
    for card in cards:
        create_schema_json(card, "cards")

    db.session.commit()

    return
Example #3
0
def update_hint_cdn(hints):
    for hint in hints:
        create_schema_json(hint, "hints")

        if hint.hints:
            update_hint_cdn(hint.hints)

    return
Example #4
0
    def put(self):
        data = request.get_json()
        activity = Activity.query.filter_by(filename=data["filename"]).first()
        edit_activity(activity, data)
        activity.cards.sort(key=lambda x: x.order)
        create_schema_json(activity, "activities")
        db.session.commit()

        return {"message": "Activity successfully updated"}, 200
Example #5
0
def edit_card(card, data):
    card.name = data["name"]
    card.order = data["order"]
    card.gems = data["gems"]
    card.github_raw_data = data["github_raw_data"]
    github_data = requests.get(data["github_raw_data"])
    card.content = update_card_images(github_data.text, data["filename"])
    create_schema_json(card, "cards")

    return
Example #6
0
    def post(self):
        data = request.get_json()
        topic = create_topic(data)

        db.session.add(topic)
        db.session.commit()
        create_schema_json(topic, "topics")
        db.session.commit()

        return {"message": "Topic successfully created"}, 201
Example #7
0
    def post(self):
        data = request.get_json()
        module = create_module(data)

        db.session.add(module)
        db.session.commit()
        create_schema_json(module, "modules")
        db.session.commit()

        return {"message": "Module successfully created"}, 201
Example #8
0
def edit_hint(hint, data):
    hint.name = data["name"]
    hint.gems = data["gems"]
    hint.order = data["order"]
    hint.filename = data["filename"]
    hint.github_raw_data = data["github_raw_data"]
    assign_hint_to_parent(hint, data)
    call_step_routes(data, hint.id, "hint")
    create_schema_json(hint, "hints")

    return
Example #9
0
    def post(self):
        data = request.get_json()
        concept = create_concept(data)

        db.session.add(concept)
        db.session.commit()
        call_step_routes(data, concept.id, "concept")
        create_schema_json(concept, "concepts")
        db.session.commit()

        return {"message": "Concept successfully created"}, 201
Example #10
0
    def post(self):
        data = request.get_json()
        activity = create_activity(data)

        db.session.add(activity)
        db.session.commit()
        activity.cards.sort(key=lambda x: x.order)
        create_schema_json(activity, "activities")
        db.session.commit()

        return {"message": "Activity successfully created"}, 201
Example #11
0
def edit_module(module, data):
    module.filename = data["filename"]
    module.name = data["name"]
    module.description = data["description"]
    module.gems_needed = data["gems_needed"]
    module.image = data["image"]
    create_schema_json(module, "modules")
    activity_paths = get_activity_paths(data)
    module.activities = get_activities(activity_paths)

    return
Example #12
0
def edit_topic(topic, data):
    topic.name = data["name"]
    topic.description = data["description"]
    topic.image = data["image"]

    if "modules" in data:
        topic.modules = get_github_modules(data["modules"])

    create_schema_json(topic, "topics")

    return
Example #13
0
    def post(self):
        data = request.get_json()
        activity = Activity.query.filter_by(
            filename=data["activity_filename"]).first()
        card = create_card(data, activity.id)

        db.session.add(card)
        db.session.commit()
        create_schema_json(card, "cards")
        db.session.commit()

        return {"message": "Card successfully created"}, 201
Example #14
0
    def post(self):
        data = request.get_json()
        hint = create_hint(data)

        db.session.add(hint)
        db.session.commit()
        assign_hint_to_parent(hint, data)
        call_step_routes(data, hint.id, "hint")
        create_schema_json(hint, "hints")
        db.session.commit()

        return {"message": "Hint successfully created"}, 201
Example #15
0
def edit_checkpoint(checkpoint, data):
    checkpoint.name = data["name"]
    checkpoint.instruction = data["instruction"]
    checkpoint.checkpoint_type = data["checkpoint_type"]
    checkpoint.filename = data["filename"]
    assign_checkpoint_to_card(checkpoint, data)
    fill_optional_checkpoint_fields(checkpoint, data)
    create_schema_json(checkpoint, "checkpoints")
    card = Card.query.filter_by(checkpoint_id=checkpoint.id).first()
    create_schema_json(card, "cards")

    return
Example #16
0
    def post(self):
        data = request.get_json()
        checkpoint = create_checkpoint(data)

        db.session.add(checkpoint)
        db.session.commit()
        assign_checkpoint_to_card(checkpoint, data)
        fill_optional_checkpoint_fields(checkpoint, data)
        create_schema_json(checkpoint, "checkpoints")
        card = Card.query.filter_by(checkpoint_id=checkpoint.id).first()
        create_schema_json(card, "cards")
        db.session.commit()

        return {"message": "Checkpoint successfully created"}, 201
Example #17
0
def update_cdn_data(file):
    activity = Activity.query.filter_by(filename=file.filename).first()
    activity.cards.sort(key=lambda x: x.order)
    data = hook_utils.utils.md_to_json(file.raw_url)

    if "activity_prerequisites" in data:
        activity.prerequisite_activities = activity_utils.utils.update_prereqs(data["activity_prerequisites"])

    create_schema_json(activity, "activities")

    for module in activity.modules:
        create_schema_json(module, "modules")

    for card in activity.cards:
        github_data = requests.get(card.github_raw_data)
        card.content = github_data.text
        create_schema_json(card, "cards")

        if card.hints:
            update_hint_cdn(card.hints)

    db.session.commit()

    return