import os from flask import Blueprint, jsonify, request from db import db from helper_functions import check_password, hash_password from models import User api = Blueprint('api', __name__, url_prefix='/api') __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__))) @api.route('/users', methods=['GET']) def users(): res = [] for i in User.query.all(): res.append(i.as_dict()) return jsonify({"status": 200, "data": res}) @api.route('/login', methods=['POST']) def login(): request_data = request.get_json() username = request_data['username'] password = request_data['password'] user = User.filter_by(username=username).first() if check_password(user.password, password): # TODO Return token return jsonify({"status": 200, "text": "Successfully logged in"}) else: return jsonify({"status": 500, "text": "Unable to login"}) @api.route('/logout', methods=['GET']) def logout(): # TODO return jsonify({"status": 200, "text": "Successfully logged out"}) @api.route('/register', methods=['POST']) def register(): request_data = request.get_json() username = request_data['username'] password = request_data['password'] if User.filter_by(username=username).first() is None: # Username doesn't exist yet user = User( username=username, password=hash_password(password), admin=False ) db.session.add(user) db.session.commit() return jsonify({"status": 200, "text": "Successfully registered user", "data": user.as_dict()}) else: return jsonify({"status": 500, "text": "Username already exist"})