app.py 文件源码

python
阅读 40 收藏 0 点赞 0 评论 0

项目:jarvis 作者: whittlbc 项目源码 文件源码
def uber_oauth_response():
    params = parse_req_data(request)

    event = params.get('event_type')

    if event != 'requests.status_changed':
        logger.error('Unsure how to handle event from Uber: {}'.format(event))
        return rh.json_response()

    metadata = params.get('meta') or {}
    external_ride_id = metadata.get('resource_id')

    if not external_ride_id:
        logger.error('Couldn\'t find meta.resource_id in params body...: {}'.format(params))
        return rh.json_response()

    pending_ride = find(PendingRide, {'external_ride_id': external_ride_id})

    if not pending_ride:
        logger.error('No Pending Ride for external_ride_id: {}'.format(external_ride_id))
        return rh.json_response()

    user = find(User, {'id': pending_ride.user_id})

    if not user:
        logger.error('No User for id: {}'.format(pending_ride.user_id))
        return rh.json_response()

    # Get all socket ids associated with user from cache
    user_sids = cache.hget(config('USER_CONNECTIONS'), user.uid) or []

    if not user_sids:
        logger.error('No open sockets registered for user with uid: {}'.format(user.uid))
        return rh.json_response()

    status = metadata.get('status')
    status_update = uber_status_update(status)

    if not status_update:
        logger.error('No status update could be found for ride status: {}'.format(status))
        return rh.json_response()

    # Update the ride even if no need to reach out to user
    logger.info('Updating pending ride with uid {} to status of {}'.format(pending_ride.uid, status))
    update(pending_ride, {'status', status_update['status']})

    if status_update.get('destroy_ride'):
        destroy_instance(pending_ride)

    response_msg = status_update.get('response')

    if response_msg:
        [socket.emit('job:update', {'text': response_msg}, namespace=namespace, room=sid) for sid in user_sids]

    return rh.json_response()

# ---- Socket Listeners ----
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号