resource impl

This commit is contained in:
h z
2024-12-03 00:10:47 +00:00
parent 5557b3434b
commit a93bd5d870
9 changed files with 118 additions and 6 deletions

View File

@@ -1,5 +1,8 @@
#api/markdown.py
from flask import Blueprint, request, jsonify
from api import require_auth
from contexts.RequestContext import RequestContext
from db import get_db
from db.models.Markdown import Markdown
import logging
@@ -16,6 +19,7 @@ def get_markdown(markdown_id):
return jsonify(markdown.to_dict())
@markdown_bp.route('/', methods=['POST'])
@require_auth(roles=['admin', 'creator'])
def create_markdown():
data = request.json
title = data.get('title')
@@ -31,10 +35,12 @@ def create_markdown():
return jsonify(new_markdown.to_dict()), 201
except Exception as e:
logger.error(f"failed to create markdown: {e}")
errno = RequestContext.get_error_id()
db.rollback()
return jsonify({"error": "create failed"}), 500
return jsonify({"error": f"create failed - {errno}"}), 500
@markdown_bp.route('/<int:markdown_id>', methods=['PUT'])
@require_auth(roles=['admin', 'creator'])
def update_markdown(markdown_id):
with get_db() as db:
markdown = db.query(Markdown).get(markdown_id)
@@ -48,11 +54,14 @@ def update_markdown(markdown_id):
return jsonify(markdown.to_dict()), 200
@markdown_bp.route('/<int:markdown_id>', methods=['DELETE'])
@require_auth(roles=['admin'])
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
logger.error(f"failed to delete markdown: {markdown_id}")
errno = RequestContext.get_error_id()
return jsonify({"error": f"file not found - {errno}"}), 404
db.delete(markdown)
db.commit()
return jsonify({"message": "deleted"}), 200