04/16 Upload codebase
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
from flask import Blueprint, request, jsonify, g
|
||||
from app import db
|
||||
from app.models.folder import Folder
|
||||
from app.services.auth_service import require_jwt
|
||||
|
||||
folders_bp = Blueprint('folders', __name__)
|
||||
|
||||
|
||||
@folders_bp.route('', methods=['GET'])
|
||||
@require_jwt
|
||||
def list_folders():
|
||||
folders = Folder.query.filter_by(user_id=g.current_user_id).order_by(Folder.name.asc()).all()
|
||||
return jsonify([f.to_dict() for f in folders]), 200
|
||||
|
||||
|
||||
@folders_bp.route('', methods=['POST'])
|
||||
@require_jwt
|
||||
def create_folder():
|
||||
data = request.get_json(silent=True) or {}
|
||||
name = (data.get('name') or '').strip()
|
||||
if not name:
|
||||
return jsonify({'error': 'name is required'}), 400
|
||||
|
||||
folder = Folder(user_id=g.current_user_id, name=name)
|
||||
db.session.add(folder)
|
||||
db.session.commit()
|
||||
return jsonify(folder.to_dict()), 201
|
||||
|
||||
|
||||
@folders_bp.route('/<int:folder_id>', methods=['PUT'])
|
||||
@require_jwt
|
||||
def update_folder(folder_id):
|
||||
folder = Folder.query.filter_by(id=folder_id, user_id=g.current_user_id).first()
|
||||
if not folder:
|
||||
return jsonify({'error': 'Folder not found'}), 404
|
||||
|
||||
data = request.get_json(silent=True) or {}
|
||||
name = (data.get('name') or '').strip()
|
||||
if not name:
|
||||
return jsonify({'error': 'name is required'}), 400
|
||||
folder.name = name
|
||||
db.session.commit()
|
||||
return jsonify(folder.to_dict()), 200
|
||||
|
||||
|
||||
@folders_bp.route('/<int:folder_id>', methods=['DELETE'])
|
||||
@require_jwt
|
||||
def delete_folder(folder_id):
|
||||
folder = Folder.query.filter_by(id=folder_id, user_id=g.current_user_id).first()
|
||||
if not folder:
|
||||
return jsonify({'error': 'Folder not found'}), 404
|
||||
db.session.delete(folder)
|
||||
db.session.commit()
|
||||
return jsonify({'message': 'Folder deleted'}), 200
|
||||
Reference in New Issue
Block a user