Ejemplo n.º 1
0
    def post():
        sign = get_request_body("sign")[0]
        openid = Redis.get(sign)
        if openid is None: abort(401)
        Redis.delete(sign)

        user = User.query.filter_by(open_id=openid).first_or_404()
        return response_json(create_token(user))
Ejemplo n.º 2
0
    def patch(task_id):
        task = Task.query.get(task_id)
        if task is None: raise APIError("该任务不存在")
        if task.user_id != g.id: raise APIError("你无权访问该任务")

        address, longitude, latitude = get_request_body("address", "longitude", "latitude")
        task.address = address
        task.longitude = longitude
        task.latitude = latitude

        db.session.add(task)
        db.session.commit()
        return response_json(msg="设置成功")
Ejemplo n.º 3
0
def get_logs():
    page = request.args.get('page', default=1, type=int)

    def _decode(item):
        return dict(id=item.id,
                    course_name=item.task.course_name,
                    active_id=item.active_id,
                    datetime=item.datetime.strftime("%Y-%m-%d %H:%M:%S"),
                    status=item.status,
                    checkin_type=item.checkin_type)

    logs = Log.query.filter_by(user_id=g.id).order_by(
        Log.datetime.desc()).paginate(page=page, per_page=20)
    items = list(map(_decode, logs.items))

    return response_json(
        dict(items=items, page=logs.page, finished=not logs.has_next))
Ejemplo n.º 4
0
def bd09():
    try:
        res = get("https://api.map.baidu.com/geoconv/v1/",
                  params={
                      "coords": get_request_body("coords")[0],
                      "from": 1,
                      "to": 5,
                      "ak": "wLuKgNcAIRmMwpSXpugPRrj8wYYi2ySR"
                  }).json()
    except OSError:
        raise APIError("获取坐标失败")

    if res["status"] == 0:
        return response_json(
            dict(longitude=res["result"][0]["x"],
                 latitude=res["result"][0]["y"]))
    else:
        raise APIError("获取坐标失败")
Ejemplo n.º 5
0
    def get(task_id):
        def _decode(item):
            return dict(
                id=item.id,
                course_name=item.course_name,
                course_id=item.course_id,
                class_id=item.class_id,
                weekday=item.weekday,
                start_hour=item.start_hour,
                end_hour=item.end_hour,
                address=item.address,
                longitude=item.longitude,
                latitude=item.latitude
            )

        task = Task.query.get(task_id)
        if task is None: raise APIError("该任务不存在")
        if task.user_id != g.id: raise APIError("你无权访问该任务")
        return response_json(_decode(task))
Ejemplo n.º 6
0
def get_tasks():
    page = request.args.get('page', default=1, type=int)

    def _decode(item):
        return dict(
            id=item.id,
            course_name=item.course_name,
            weekday=item.weekday,
            start_hour=str(item.start_hour).zfill(2),
            end_hour=str(item.end_hour).zfill(2)
        )

    tasks = Task.query.filter_by(user_id=g.id).order_by(
        Task.weekday).order_by(Task.start_hour).paginate(page=page, per_page=20)
    items = list(map(_decode, tasks.items))

    return response_json(dict(
        items=items,
        page=tasks.page,
        finished=not tasks.has_next
    ))