51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
#api/markdown.py
|
|
from flask import Blueprint, request, jsonify
|
|
from db import get_db
|
|
from db.models.Markdown import Markdown
|
|
|
|
markdown_bp = Blueprint('markdown', __name__, url_prefix='/api/markdown')
|
|
|
|
@markdown_bp.route('/<int:markdown_id>', methods=['GET'])
|
|
def get_markdown(markdown_id):
|
|
with get_db() as db:
|
|
markdown = db.query(Markdown).get(markdown_id)
|
|
if markdown is None:
|
|
return jsonify({"error": "file not found"}), 404
|
|
return jsonify(markdown.to_dict())
|
|
|
|
@markdown_bp.route('/', methods=['POST'])
|
|
def create_markdown():
|
|
data = request.json
|
|
title = data.get('title')
|
|
content = data.get('content')
|
|
path = data.get('path')
|
|
if not title or not content:
|
|
return jsonify({"error": "missing required fields"}), 400
|
|
new_markdown = Markdown(title=title, content=content, path=path)
|
|
with get_db() as db:
|
|
db.add(new_markdown)
|
|
db.commit()
|
|
return jsonify(new_markdown.to_dict()), 201
|
|
|
|
@markdown_bp.route('/<int:markdown_id>', methods=['PUT'])
|
|
def update_markdown(markdown_id):
|
|
with get_db() as db:
|
|
markdown = db.query(Markdown).get(markdown_id)
|
|
if markdown is None:
|
|
return jsonify({"error": "file not found"}), 404
|
|
data = request.json
|
|
markdown.title = data.get('title')
|
|
markdown.content = data.get('content')
|
|
markdown.path = data.get('path')
|
|
db.commit()
|
|
return jsonify(markdown.to_dict()), 200
|
|
|
|
@markdown_bp.route('/<int:markdown_id>', methods=['DELETE'])
|
|
def delete_markdown(markdown_id):
|
|
with get_db() as db:
|
|
markdown = db.query(Markdown).get(markdown_id)
|
|
if markdown is None:
|
|
return jsonify({"error": "file not found"}), 404
|
|
db.delete(markdown)
|
|
db.commit()
|
|
return jsonify({"message": "deleted"}), 200 |