async def login(self, cridentail): async with self.engine.acquire() as connection: user_dao = UserDAO(connection) user = await user_dao.find_by_username(cridentail['username']) if user: if utils.hash(cridentail['password'], user['salt']) == user['password']: return user raise CredentailInvalid()
def user_dao(): test_user_data = [{ "_id": 18, "url": "http://initech.company.com/api/v2/users/1.json", "external_id": "74341f74-9c79-49d5-9611-87ef9b6eb75f", "name": "Francisca Rasmussen", "alias": "Miss Coffey", "created_at": "2016-04-15T05:19:46 -10:00", "active": True, "verified": True, "shared": False, "locale": "en-AU", "timezone": "Sri Lanka", "last_login_at": "2013-08-04T01:03:27 -10:00", "email": "*****@*****.**", "phone": "8335-422-718", "signature": "Don't Worry Be Happy!", "organization_id": 119, "tags": ["Springville", "Sutton", "Hartsville/Hartley", "Diaperville"], "suspended": True, "role": "admin" }] test_user_dao = UserDAO() test_user_dao.users = test_user_data return test_user_dao
def __init__(self): """Init App with default data""" logging.debug("initialising app...") self.organizations_uri = config.DEFAULT_ORG_DATA self.org_dao = OrganizationDAO() self.users_uri = config.DEFAULT_USER_DATA self.user_dao = UserDAO() self.tickets_uri = config.DEFAULT_TICKET_DATA self.ticket_dao = TicketDAO()
async def detail(self, id: int, page: int): topic_dao = TopicDAO() reply_dao = ReplyDAO() user_dao = UserDAO() topic = serializer.serialize(await topic_dao.find(id)) topic['replies'] = await reply_dao.find_by_topic_id(id, page) topic['author'] = await user_dao.find(topic['author_id']) topic['replies_count'] = (await reply_dao.count_by_topic_id(id))['count'] topic['last_comment_by'] = await user_dao.find( topic['last_replied_by_user_id']) await topic_dao.view_increase(id) return topic
async def register(self, user): async with self.engine.acquire() as connection: transaction = await connection.begin() user_dao = UserDAO(connection) found = await user_dao.find_by_username(user['username']) if found: await transaction.rollback() raise DuplicatedUser(user['username']) user = await user_dao.register(user) await transaction.commit() return user
async def user_middleware(request, handler): session = request['session'] if 'user_id' in session: user_id = session['user_id'] dao = UserDAO() user_table = await dao.find(user_id) if not user_table: user = AnonymousUser() else: user = User() user.id = user_table['id'] user.username = user_table['username'] else: user = AnonymousUser() request['user'] = user request['aiohttp_jinja2_context'] = {'user': user, 'request': request} response = await handler(request) return response
async def detail(self, id: int, page: int): async with self.engine.acquire() as connection: topic_dao = TopicDAO(connection) reply_dao = ReplyDAO(connection) user_dao = UserDAO(connection) topic = self.row2dict(await topic_dao.find(id)) topic['replies'] = await reply_dao.find_by_topic_id(id, page) topic['author'] = await user_dao.find(topic['author_id']) topic['replies_count'] = (await reply_dao.count_by_topic_id(id))['count'] topic['last_comment_by'] = await user_dao.find( topic['last_replied_by_user_id']) transaction = await connection.begin() await topic_dao.view_increase(id) await transaction.commit() return topic
async def user_middleware(request, handler): logging.info("executing middleware user") session = request['session'] if 'user_id' in session: user_id = session['user_id'] async with DatabaseContext.default.engine.acquire() as connection: dao = UserDAO(connection) user_table = await dao.find(user_id) if not user_table: user = AnonymousUser() else: user = User() user.id = user_table['id'] user.username = user_table['username'] else: user = AnonymousUser() request['user'] = user print(2) # print(request['aiohttp_jinja2_context']) # request['aiohttp_jinja2_context'].update(user = user) request['aiohttp_jinja2_context'] = {'user': user, 'request': request} response = await handler(request) return response
from apispec import APISpec from apispec.ext.flask import FlaskPlugin from apispec.ext.marshmallow import MarshmallowPlugin from flask import Flask, jsonify, g, request from flask.views import MethodView from flask_cors import CORS from marshmallow import Schema, fields as ma_fields from decorators import login_required from models import UserDAO DAO = UserDAO() DAO.create({'name': 'remi'}) DAO.create({'name': 'caro'}) app = Flask(__name__) CORS(app) """ ### flask + marshmallow + apispec implementation """ # Create an APISpec spec = APISpec( title='MA Swagger UserAPI', version='1.0.0', openapi_version='2.0', plugins=( FlaskPlugin(), MarshmallowPlugin(),
def __init__(self): self.user_dao = UserDAO()
def search_data(): test_user_data = [{ "_id": 2, "url": "http://initech.company.com/api/v2/users/2.json", "external_id": "c9995ea4-ff72-46e0-ab77-dfe0ae1ef6c2", "name": "Cross Barlow", "alias": "Miss Joni", "created_at": "2016-06-23T10:31:39 -10:00", "active": True, "verified": True, "shared": False, "locale": "zh-CN", "timezone": "Armenia", "last_login_at": "2012-04-12T04:03:28 -10:00", "email": "*****@*****.**", "phone": "9575-552-585", "signature": "Don't Worry Be Happy!", "organization_id": 106, "tags": ["Foxworth", "Woodlands", "Herlong", "Henrietta"], "suspended": False, "role": "admin" }, { "_id": 3, "url": "http://initech.company.com/api/v2/users/3.json", "external_id": "85c599c1-ebab-474d-a4e6-32f1c06e8730", "name": "Ingrid Wagner", "alias": "Miss Buck", "created_at": "2016-07-28T05:29:25 -10:00", "active": False, "verified": False, "shared": False, "locale": "en-AU", "timezone": "Trinidad and Tobago", "last_login_at": "2013-02-07T05:53:38 -11:00", "email": "*****@*****.**", "phone": "9365-482-943", "signature": "Don't Worry Be Happy!", "organization_id": 104, "tags": ["Mulino", "Kenwood", "Wescosville", "Loyalhanna"], "suspended": False, "role": "end-user" }] test_user_dao = UserDAO() test_user_dao.users = test_user_data search_data.user_dao = test_user_dao return search_data