lib/client/services/forecast/forecast.service.ts (52 lines of code) (raw):
import type { Client } from "soap";
import type {
AvailabilityForecast,
AvailabilityForecastOptions,
DeliveryForecast,
DeliveryForecastOptions,
ProspectiveLineItem,
TrafficDataRequest,
TrafficDataResponse,
} from "./forecast.type";
import type { ForecastServiceOperations } from "./forecastService.interface";
export class ForecastService implements ForecastServiceOperations {
private _client: Client;
constructor(client: Client) {
this._client = client;
}
getAvailabilityForecast(
lineItem: ProspectiveLineItem,
forecastOptions: AvailabilityForecastOptions,
): Promise<AvailabilityForecast> {
return this._client.getAvailabilityForecast({ lineItem, forecastOptions });
}
getAvailabilityForecastById(
lineItemId: number,
forecastOptions: AvailabilityForecastOptions,
): Promise<AvailabilityForecast> {
return this._client.getAvailabilityForecastById({
lineItemId,
forecastOptions,
});
}
getDeliveryForecast(
lineItems: ProspectiveLineItem[],
forecastOptions: DeliveryForecastOptions,
): Promise<DeliveryForecast> {
return this._client.getDeliveryForecast({ lineItems, forecastOptions });
}
getDeliveryForecastByIds(
lineItemIds: number[],
forecastOptions: DeliveryForecastOptions,
): Promise<DeliveryForecast> {
return this._client.getDeliveryForecastByIds({
lineItemIds,
forecastOptions,
});
}
getTrafficData(
trafficDataRequest: TrafficDataRequest,
): Promise<TrafficDataResponse> {
return this._client.getTrafficData({ trafficDataRequest });
}
}