diff --git a/src/PrintOne.ts b/src/PrintOne.ts index 10230ed..ee626cd 100644 --- a/src/PrintOne.ts +++ b/src/PrintOne.ts @@ -245,13 +245,8 @@ export class PrintOne { * Create an order */ public async createOrder(data: CreateOrder): Promise { - let templateId: undefined | string; - - if (data.template instanceof Template) { - templateId = data.template.id; - } else { - templateId = data.template; - } + const template = data.templateId ?? data.template; + const templateId = template instanceof Template ? template.id : template; const sendDateStr = data.sendDate instanceof Date @@ -272,13 +267,8 @@ export class PrintOne { } public async createCsvOrder(data: CreateCsvOrder): Promise { - let templateId: undefined | string; - - if (data.template instanceof Template) { - templateId = data.template.id; - } else { - templateId = data.template; - } + const template = data.templateId ?? data.template; + const templateId = template instanceof Template ? template.id : template; const formData = new FormData(); formData.append( diff --git a/src/models/CsvOrder.ts b/src/models/CsvOrder.ts index a0118ca..8552f3c 100644 --- a/src/models/CsvOrder.ts +++ b/src/models/CsvOrder.ts @@ -14,11 +14,19 @@ export type CreateCsvOrder = { recipient: Address; mergeVariables?: Record; }; - template: Template | string; finish?: Finish; billingId?: string; sender?: Address; -}; +} & ( + | { + template: Template | string; + templateId: undefined; + } + | { + template: undefined; + templateId: string; + } +); export class CsvOrder { private _data: ICsvOrder; diff --git a/src/models/Order.ts b/src/models/Order.ts index dbac81b..c960138 100644 --- a/src/models/Order.ts +++ b/src/models/Order.ts @@ -10,7 +10,6 @@ import { sleep } from "../utils"; export type CreateOrder = { recipient: Address; sender?: Address; - template: Template | string; /** * @default GLOSSY */ @@ -18,7 +17,16 @@ export type CreateOrder = { mergeVariables?: Record; billingId?: string; sendDate?: Date | string; -}; +} & ( + | { + template: Template | string; + templateId: undefined; + } + | { + template: undefined; + templateId: string; + } +); export class Order { private _data: IOrder;