Skip to content
← Public packages

@kody/doordash-driver

Request DoorDash Drive (Dasher) deliveries with JWT auth from Developer Portal access keys.

src/get-delivery.ts

36 lines · 1003 B · TypeScript
/**
 * Get a DoorDash Drive delivery (`GET /drive/v2/deliveries/{external_delivery_id}`).
 *
 * ```ts
 * import { getDelivery } from 'kody:@kody/doordash-driver/get-delivery'
 * await getDelivery({ externalDeliveryId: 'order-123' })
 * ```
 */

import { doorDashRequest, type DoorDashAuthInput } from './core.ts'

export type GetDeliveryInput = DoorDashAuthInput & {
	/** Your `external_delivery_id` (Drive’s path id). */
	externalDeliveryId?: string
	/** Alias for `externalDeliveryId`. */
	deliveryId?: string
	id?: string
}

export async function getDelivery(input: GetDeliveryInput = {}) {
	const externalId = String(
		input.externalDeliveryId ?? input.deliveryId ?? input.id ?? '',
	).trim()
	if (!externalId) {
		throw new Error('Pass externalDeliveryId (the id you used when creating the delivery).')
	}
	return doorDashRequest({
		...input,
		method: 'GET',
		path: '/drive/v2/deliveries/' + encodeURIComponent(externalId),
		confirm: true,
		dryRun: false,
	})
}

export default getDelivery