예제 #1
0
def edit_group_category(group_category_id):
    group_category = GroupCategory.query.filter(
        GroupCategory.id == group_category_id, GroupCategory.group_id == current_user.group_id
    ).first_or_404()

    group_category_schema = GroupCategory.from_json(json.loads(request.data.decode('utf-8')),
                                                    partial=True)

    if group_category_schema.errors:
        return {'errors': group_category_schema.errors}, 400

    if 'parent_id' in group_category_schema.data:
        parent = GroupCategory.query.filter(
            GroupCategory.id == group_category_schema.data['parent_id']
        ).first()

        if not parent:
            return {'errors': {'parent': 'Parent group_category with this id does not exist'}}, 400

    for field, value in group_category_schema.data.items():
        if hasattr(group_category, field):
            setattr(group_category, field, value)

    db.session.commit()

    return group_category, 200
예제 #2
0
def add_group_category():
    group_category_schema = GroupCategory.from_json(json.loads(request.data.decode('utf-8')))

    if group_category_schema.errors:
        return {'errors': group_category_schema.errors}, 400

    if 'parent_id' in group_category_schema.data:
        parent = GroupCategory.query.filter(
            GroupCategory.id == group_category_schema.data['parent_id']
        ).first()

        if not parent:
            return {'errors': {'parent': 'Parent group_category with this id does not exist'}}, 400

    group_category = GroupCategory(**group_category_schema.data)
    group_category.group = current_user.group

    db.session.add(group_category)
    db.session.commit()

    return group_category, 201