from flask import Blueprint, jsonify, make_response import json from app import app api = Blueprint('api', __name__) from app.Models import User from app.Views import AuthUserAPI, RegisterAPI, LoginAPI, PostAPI, CategoryAPI from helpers import register_api url_api_v1 = '/api/v1' register_api(AuthUserAPI, 'auth_user_api', '/auth/user', pk='id', version='v1') register_api(RegisterAPI, 'register_api', '/auth/register', pk='id', version='v1') register_api(LoginAPI, 'login_api', '/auth/login', pk='id', version='v1') register_api(PostAPI, 'post_api', '/posts', pk='id', version='v1') app.add_url_rule('%s/posts/<string:slug>' % (url_api_v1), view_func=PostAPI.as_view('post_slug_api'), methods=['GET']) register_api(CategoryAPI, 'category_api', '/categories', pk='id', version='v1') # app.add_url_rule('/users', view_func=UserAPI.as_view('users')) # @api.route('/users') # def index(): # user = user = User.query.filter_by(id=1).first() # token =user.encodeAuthToken(user.id) # return jsonify({ # 'access_token': token.decode("utf-8") # })
def collection_name(self): return 'users' def post(self): user = request.form.to_dict() # get password and hash it password = request.form.get('password', None) confirm = request.form.get('confirm', None) if password: if password == confirm: hashed_password = bcrypt.hashpw(password, bcrypt.gensalt()) user['hashed_password'] = hashed_password del user['password'] del user['confirm'] # insert returns an ObjectId user_id = str(db.users.insert(user)) # abstract into pre-serialize user del user['hashed_password'] user['logged_in'] = True session['user'] = user_id return jsonify(user) else: # password != confirm return json.dumps({'error': PASSWORDS_DO_NOT_MATCH}) else: # no password was entered return json.dumps({'error': NO_PASSWORD_PROVIDED}) register_api(UserAPI, 'user_api', '/users/')
from helpers import BSONView, register_api class EventAPI(BSONView): @property def collection_name(self): return 'events' register_api(EventAPI, 'event_api', '/events/')