Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 0 additions & 17 deletions src/models/batch.js

This file was deleted.

17 changes: 17 additions & 0 deletions src/models/batch.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import EasyPostObject from './easypost_object';

/**
* A {@link https://docs.easypost.com/docs/batches Batch} represents a collection of {@link Shipment shipments} that can be processed together.
* @public
* @extends EasyPostObject
*/
export default class Batch extends EasyPostObject {
declare label_url?: string | null;
declare num_shipments?: number | null;
declare pickup?: Record<string, unknown> | null;
declare reference?: string | null;
declare scan_form?: Record<string, unknown> | null;
declare shipments?: Record<string, unknown>[] | null;
declare state?: string | null;
declare status?: Record<string, number> | null;
}
33 changes: 0 additions & 33 deletions src/models/order.js

This file was deleted.

38 changes: 38 additions & 0 deletions src/models/order.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import Constants from '../constants';
import EasyPostObject from './easypost_object';

/**
* An {@link https://docs.easypost.com/docs/orders Order} represents a collection of packages, intended only for multi-parcel shipments.
* @public
* @extends EasyPostObject
*/
export default class Order extends EasyPostObject {
declare buyer_address?: Record<string, unknown> | null;
declare from_address?: Record<string, unknown> | null;
declare is_return?: boolean | null;
declare messages?: Record<string, unknown>[] | null;
declare rates?: Parameters<typeof Constants.Utils.getLowestRate>[0] | null;
declare reference?: string | null;
declare return_address?: Record<string, unknown> | null;
declare shipments?: Record<string, unknown>[] | null;
declare to_address?: Record<string, unknown> | null;

/**
* Get the lowest rate for this {@link Order}.
* @public
* @param {string[]} [carriers] - List of allowed carriers to filter by
* @param {string[]} [services] - List of allowed services to filter by
* @returns {Rate} - The lowest rate
* @throws {FilteringError} - If no applicable rates are found
*/
lowestRate(
carriers?: string[],
services?: string[],
): ReturnType<typeof Constants.Utils.getLowestRate> {
const rates = ((this as Order & { rates?: unknown[] }).rates || []) as Parameters<
typeof Constants.Utils.getLowestRate
>[0];

return Constants.Utils.getLowestRate(rates, carriers, services);
}
}
36 changes: 0 additions & 36 deletions src/models/pickup.js

This file was deleted.

40 changes: 40 additions & 0 deletions src/models/pickup.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import Constants from '../constants';
import EasyPostObject from './easypost_object';

/**
* A {@link https://docs.easypost.com/docs/pickups Pickup} represents a scheduled carrier pickup of packages from an {@link https://docs.easypost.com/docs/addresses Address}.
* @public
* @extends EasyPostObject
*/
export default class Pickup extends EasyPostObject {
declare address?: Record<string, unknown> | null;
declare carrier_accounts?: Record<string, unknown>[] | null;
declare confirmation?: string | null;
declare instructions?: string | null;
declare is_account_address?: boolean | null;
declare max_datetime?: string | null;
declare messages?: Record<string, unknown>[] | null;
declare min_datetime?: string | null;
declare pickup_rates?: Parameters<typeof Constants.Utils.getLowestRate>[0] | null;
declare reference?: string | null;
declare shipment?: Record<string, unknown> | null;
declare status?: 'unknown' | 'scheduled' | 'canceled' | null;

/**
* Get the lowest rate for this {@link Pickup}.
* @public
* @param {string[]} [carriers] - List of allowed carriers to filter by
* @param {string[]} [services] - List of allowed services to filter by
* @returns {Rate} - The lowest rate
* @throws {FilteringError} - If no applicable rates are found
*/
lowestRate(
carriers?: string[],
services?: string[],
): ReturnType<typeof Constants.Utils.getLowestRate> {
const rates = ((this as Pickup & { pickup_rates?: unknown[] }).pickup_rates ||
[]) as Parameters<typeof Constants.Utils.getLowestRate>[0];

return Constants.Utils.getLowestRate(rates, carriers, services);
}
}
10 changes: 5 additions & 5 deletions src/models/pickup_rate.js → src/models/pickup_rate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object';
* @extends EasyPostObject
*/
export default class PickupRate extends EasyPostObject {
static carrier;
static currency;
static pickup_id;
static rate;
static service;
declare carrier?: string | null;
declare currency?: string | null;
declare pickup_id?: string | null;
declare rate?: string | null;
declare service?: string | null;
}
24 changes: 0 additions & 24 deletions src/models/rate.js

This file was deleted.

24 changes: 24 additions & 0 deletions src/models/rate.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import EasyPostObject from './easypost_object';

/**
* A {@link https://docs.easypost.com/docs/shipments/rates Rate} represents pricing information for shipping a specific {@link Parcel} with a specific carrier and service level.
* @public
* @extends EasyPostObject
*/
export default class Rate extends EasyPostObject {
declare billing_type?: string | null;
declare carrier_account_id?: string | null;
declare carrier?: string | null;
declare currency?: string | null;
declare delivery_date_guaranteed?: boolean | null;
declare delivery_date?: string | null;
declare delivery_days?: number | null;
declare est_delivery_days?: number | null;
declare list_currency?: string | null;
declare list_rate?: string | null;
declare rate?: string | null;
declare retail_currency?: string | null;
declare retail_rate?: string | null;
declare service?: string | null;
declare shipment_id?: string | null;
}
10 changes: 5 additions & 5 deletions src/models/refund.js → src/models/refund.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import EasyPostObject from './easypost_object';
* @extends EasyPostObject
*/
export default class Refund extends EasyPostObject {
static carrier;
static confirmation_number;
static shipment_id;
static status;
static tracking_code;
declare carrier?: string | null;
declare confirmation_number?: string | null;
declare shipment_id?: string | null;
declare status?: 'submitted' | 'refunded' | 'rejected' | null;
declare tracking_code?: string | null;
}
14 changes: 7 additions & 7 deletions src/models/scan_form.js → src/models/scan_form.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ import EasyPostObject from './easypost_object';
* @extends EasyPostObject
*/
export default class ScanForm extends EasyPostObject {
static address;
static batch_id;
static form_file_type;
static form_url;
static message;
static status;
static tracking_codes;
declare address?: Record<string, unknown> | null;
declare batch_id?: string | null;
declare form_file_type?: string | null;
declare form_url?: string | null;
declare message?: string | null;
declare status?: 'creating' | 'created' | 'failed' | null;
declare tracking_codes?: string[] | null;
}