Exemplo n.º 1
0
        public async Task GetDeliveryQuoteAsync()
        {
            var deliveryQuoteArgs = new PostmatesDeliveryQuoteArgs()
            {
                PickupAddress = new PostmatesAddress()
                {
                    StreetAddress1 = "229 1st AVE N",
                    StreetAddress2 = "",
                    City = "Seattle",
                    State = UsStates.WA,
                    ZipCode = "98109"
                },
                PickupLatitude = 47.6698608,
                PickupLongitude = -122.3004016,
                PickupPhoneNumber = "3155140118",
                DropoffAddress = new PostmatesAddress()
                {
                    StreetAddress1 = "3958 6th AVE NW",
                    StreetAddress2 = "",
                    City = "Seattle",
                    State = UsStates.WA,
                    ZipCode = "98107"
                },
                DropoffLatitude = 47.6554918,
                DropoffLongitude = -122.3633574,
                DropoffPhoneNumber = "+1 (315) 514-0118"
            };

            var deliveryQuote = await PostmatesClient.GetDeliveryQuoteAsync(deliveryQuoteArgs);

            Assert.IsType<PostmatesDeliveryQuote>(deliveryQuote);
        }
Exemplo n.º 2
0
 public async Task UnknownLocationAsync()
 {
     var deliveryQuoteArgs = new PostmatesDeliveryQuoteArgs()
     {
         PickupAddress = new PostmatesAddress()
         {
             StreetAddress1 = "34 Antarctica Avenue",
             StreetAddress2 = "",
             City = "Antarctica",
             State = UsStates.WA,
             ZipCode = "90000"
         },
         PickupPhoneNumber = "3155140118",
         DropoffAddress = new PostmatesAddress()
         {
             StreetAddress1 = "00 Not a real Ave",
             StreetAddress2 = "",
             City = "Fake",
             State = UsStates.WA,
             ZipCode = "00000"
         },
         DropoffPhoneNumber = "+1 (315) 514-0118"
     };
     try
     {
         var deliveryQuote = await PostmatesClient.GetDeliveryQuoteAsync(deliveryQuoteArgs);
     }
     catch(Exception e)
     {
         Assert.IsType<UnknownLocationException>(e);
     }
 }
Exemplo n.º 3
0
        /// <summary>
        /// The first step in using the Postmates API is get a quote on a delivery.
        /// This allows you to make decisions about the appropriate cost and availability
        /// for using the Postmates platform, which can vary based on distance and demand.
        ///
        /// A Delivery Quote provides an estimate for a potential delivery.This includes
        /// the amount the delivery is expected to cost as well as an estimated delivery
        /// window.As demand on our platform changes over time, the fee amount and ETA may
        /// increase beyond what your use-case can support.
        ///
        /// A Delivery Quote can only be used once and is only valid for a limited duration.
        /// </summary>
        /// <param name="args"></param>
        /// <param name="cancellationToken">The optional cancellation token.</param>
        /// <returns></returns>
        public async Task <PostmatesDeliveryQuote> GetDeliveryQuoteAsync(PostmatesDeliveryQuoteArgs args, CancellationToken cancellationToken = default)
        {
            args.Validate();

            var deliveryQuoteArguments = new
            {
                pickup_address       = args.PickupAddress.ToString(),
                pickup_latitude      = args.PickupLatitude,
                pickup_longitude     = args.PickupLongitude,
                pickup_phone_number  = args.PickupPhoneNumber,
                dropoff_address      = args.DropoffAddress.ToString(),
                dropoff_latitude     = args.DropoffLatitude,
                dropoff_longitude    = args.DropoffLongitude,
                dropoff_phone_number = args.DropoffPhoneNumber,
                dropoff_ready_dt     = args.DropOffReady,
                pickup_deadline_dt   = args.PickupDeadline,
                pickup_ready_dt      = args.PickupReady
            };

            var result = await PostFormAsync <PostmatesDeliveryQuote>(FormatPath("delivery_quotes"), deliveryQuoteArguments, cancellationToken : cancellationToken);

            return(result);
        }
Exemplo n.º 4
0
        public async Task AddressUndeliverableAsync()
        {
            var deliveryQuoteArgs = new PostmatesDeliveryQuoteArgs()
            {
                PickupAddress = new PostmatesAddress()
                {
                    StreetAddress1 = "405 1st St NW, Towner, ND 58788",
                    StreetAddress2 = "",
                    City = "Towner",
                    State = UsStates.ND,
                    ZipCode = "58788"
                },
                PickupLatitude = 47.6698608,
                PickupLongitude = -100.406688,
                PickupPhoneNumber = "3155140118",
                DropoffAddress = new PostmatesAddress()
                {
                    StreetAddress1 = "3958 6th AVE NW",
                    StreetAddress2 = "",
                    City = "Seattle",
                    State = UsStates.WA,
                    ZipCode = "98107"
                },
                DropoffLatitude = 47.6554918,
                DropoffLongitude = -122.3633574,
                DropoffPhoneNumber = "+1 (315) 514-0118"
            };

            try
            {
                var deliveryQuote = await PostmatesClient.GetDeliveryQuoteAsync(deliveryQuoteArgs);
            }
            catch (Exception e)
            {
                Assert.IsType<AddressUndeliverableException>(e);
            }
        }