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); }
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); } }
/// <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); }
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); } }