-
Fawwaz Anugrah Wiradhika Dharmasatya authored3a4a7518
class_views.py 2.29 KiB
from flask import Blueprint, render_template, request, flash, jsonify,abort
# @ACL(login_required)
from flask_login import login_required, current_user
from .models import Note,Log
from .db import db
import json
from lib.RoleCheck import RoleCheck
views = Blueprint('views', __name__)
# @Routes
class Views():
# @NoCheck
def __init__(self) -> None:
pass
@views.route('/add', methods=['POST'])
@login_required
def class_add_note(self):
if request.method == 'POST':
note = request.form.get('note')
if len(note) < 1:
flash('Note is too short!', category='error')
else:
new_note = Note(data=note, user_id=current_user.id)
db.session.add(new_note)
db.session.commit()
flash('Note added!', category='success')
return render_template("home.html")
@views.route('/update', methods=['POST'])
@login_required
def class_update_note(self):
if request.method == 'POST':
n = request.form.get('note')
noteId = n['noteId']
note = Note.query.get(noteId)
if note.user_id == current_user.id:
if len(n.note) < 1:
flash('Note is too short!', category='error')
else:
db.session.update().where(Note.id==n.id).values(data=n.note)
db.session.commit()
flash('Note updated!', category='success')
return render_template("home.html")
@views.route('/delete', methods=['POST'])
@login_required
def class_delete_note(self):
note = json.loads(request.data)
noteId = note['noteId']
note = Note.query.get(noteId)
if note:
if note.user_id == current_user.id:
db.session.delete(note)
db.session.commit()
return jsonify({})
@views.route('/note', methods=['GET'])
@login_required
def class_get_note(self):
notes = Note.query.filter(Note.user_id==current_user.id)
return jsonify(notes)
@views.route('/logs', methods=['GET'])
@login_required
def class_get_logs(self):
if (RoleCheck().is_admin(current_user)):
abort(403)
logs = Log.query.get()
return jsonify(logs)