Skip to content

Commit

Permalink
feat: Query process by parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
arnoerpenbeck committed Dec 9, 2024
1 parent b2a3f21 commit e4ba71c
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions src/fft-api/process/fftProcessService.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { ErrorType, FftSdkError, QueryParams } from '../../common';
import { Logger } from '../../common/utils/logger';
import { FftApiClient } from '../common';
import { Process } from '../types';
Expand All @@ -18,4 +19,52 @@ export class FftProcessService {
throw err;
}
}

public async get(parameters?: ProcessQueryParameters): Promise<Process> {
try {
const queryParams: QueryParams = {};

if (parameters?.orderRef) {
queryParams['orderRef'] = parameters.orderRef;
}

if (parameters?.tenantOrderId) {
queryParams['tenantOrderId'] = parameters.tenantOrderId;
}

if (parameters?.pickJobRef) {
queryParams['pickJobRef'] = parameters.pickJobRef;
}

if (parameters?.shipmentRef) {
queryParams['shipmentRef'] = parameters.shipmentRef;
}

if (parameters?.handoverJobRef) {
queryParams['handoverJobRef'] = parameters.handoverJobRef;
}

if (parameters?.returnRef) {
queryParams['returnRef'] = parameters.returnRef;
}

if (Object.keys(queryParams).length === 0) {
throw new FftSdkError({ message: 'At least one query parameter is required.', type: ErrorType.REQUEST });
}

return await this.apiClient.get<Process>(this.path, queryParams);
} catch (err) {
this.log.error(`Could not get process.`, err);
throw err;
}
}
}

export interface ProcessQueryParameters {
orderRef?: string;
tenantOrderId?: string;
pickJobRef?: string;
shipmentRef?: string;
handoverJobRef?: string;
returnRef?: string;
}

0 comments on commit e4ba71c

Please sign in to comment.