示例#1
0
    def post(self):

        post_args = tornado.escape.json_decode(self.request.body)
        post_lat, post_lng = post_args['lat'], post_args['lng']
        del post_args['lat']
        del post_args['lng']
        # post_args is now a dictionary with urls as keys and corresponding tags
        # for values (each url has only one tag)

        closest_shelter = self.shelters[distance_helpers.get_closest(post_lat, post_lng, self.shelters)]

        http = tornado.httpclient.AsyncHTTPClient()

        params = {
            'manifest': ','.join(['%s,%s' % (x, post_args[x]) for x in post_args.keys()]),
            'pickup_name': 'Pickup Place',
            'pickup_address': getAddressFromGeo(post_lat, post_lng),
            'pickup_phone_number': '111-111-1111',
            'dropoff_name': closest_shelter['name'],
            'dropoff_address': getAddressFromGeo(closest_shelter['lat'], closest_shelter['lng']),
            'dropoff_phone_number': closest_shelter['phone'],
            'robo_pickup': "00:00:01",
            'robo_pickup_complete': "00:00:02",
            'robo_dropoff': "00:00:03",
            'robo_delivered': "00:03:00"
        }
        request = tornado.httpclient.HTTPRequest(
            'https://api.postmates.com/v1/customers/%s/deliveries' % config.USER,
            method='POST',
            auth_username=config.POSTMATES_API_KEY,
            body=urllib.parse.urlencode(params)
            )
        response = yield tornado.gen.Task(http.fetch, request)
        response = json.loads(response.body.decode())
        r.set(response['id'], json.dumps(post_args))

        self.write(response)