Esempio n. 1
0
def route_logout(req: Request, res: Response):
    res.cookies.set('session_id', '; max-age=0')
    res.json({
        'code': 0,
        'msg': '登出成功',
        'data': {},
    })
Esempio n. 2
0
def update(req: Request, res: Response):
    form = req.body
    todo_id = form['id']
    t = Todo.find_by(id=todo_id)
    u = current_user(req)

    if t is None:
        return res.json({
            'code': 400,
            'msg': 'todo {} 不存在'.format(todo_id),
        })

    # todo 项的 id 与当前用户的 id 一样(有权限更新)
    # 才能编辑
    if (u is None and t.user_id > 0) or u.id != t.user_id:
        res.json({
            'code': 401,
            'msg': 'Unauthorized',
        })
    else:
        form.pop('id')
        new_t = Todo.update(todo_id, form)
        log(form)
        res.json({
            'code': 0,
            'msg': '',
            'data': new_t.json(),
        })
Esempio n. 3
0
def delete(req: Request, res: Response):
    todo_id = req.body['id']
    Todo.delete(todo_id)
    res.json({
        'code': 0,
        'msg': '删除成功',
    })
Esempio n. 4
0
def add(req: Request, res: Response):
    """
    用于增加新 todo 的路由函数
    """
    u = current_user(req)
    if u is None:
        return res.json({
            'code': 401,
            'msg': 'Unauthorized',
        })
    form = req.body
    t = Todo.add(form, u.id)
    res.json({
        'code': 0,
        'msg': '添加 todo 成功',
        'data': t.json(),
    })
Esempio n. 5
0
def index(req: Request, res: Response):
    """
    todo 首页的路由函数
    """
    try:
        user_id = int(req.query['userId'])
    except:
        return res.json({
            'code': 400,
            'msg': '参数错误',
        })
    todos = Todo.find_all(user_id=user_id)
    res.json({
        'code': 0,
        'msg': '',
        'data': [t.json() for t in todos],
    })
Esempio n. 6
0
def route_passport_status(req: Request, res: Response):
    """
    登录页面的路由函数
    """
    user_current = current_user(req)
    if user_current:
        res.json({
            'code': 0,
            'msg': 'success',
            'data': {
                'username': user_current.username,
                'id': user_current.id,
            },
        })
    else:
        res.json({
            'code': 401,
            'msg': 'Unauthorized',
            'data': {},
        })
Esempio n. 7
0
def route_register(req: Request, res: Response):
    if 'username' in req.body and 'password' in req.body:
        u, result = User.register(
            dict(
                username=req.body['username'],
                password=req.body['password'],
            ))
        if u is None:
            res.json({
                'code': 400,
                'msg': result,
                'data': {},
            })
        else:
            res.json({
                'code': 0,
                'msg': '注册成功',
                'data': {
                    'username': u.username,
                    'id': u.id,
                }
            })
    else:
        res.json({
            'code': 400,
            'msg': '缺乏参数 username 或 password',
            'data': {},
        })
Esempio n. 8
0
def route_login(req: Request, res: Response):
    if 'username' in req.body and 'password' in req.body:
        u = User.login(
            dict(
                username=req.body['username'],
                password=req.body['password'],
            ))
        if u is None:
            res.json({
                'code': 400,
                'msg': '用户名或密码错误',
                'data': {},
            })
        else:
            # 下面是把用户名存入 cookie 中
            # headers['Set-Cookie'] = 'user={}'.format(u.username)
            session_id = random_string()
            form = dict(
                session_id=session_id,
                user_id=u.id,
            )
            Session.new(form)
            res.cookies.set('session_id', session_id)
            res.json({
                'code': 0,
                'msg': '登录成功',
                'data': {
                    'username': u.username,
                    'id': u.id,
                }
            })
    else:
        res.json({
            'code': 400,
            'msg': '缺乏参数 username 或 password',
            'data': {},
        })