import { Method, Handler, mapExtensions } from '@shipengine/connect-runtime';
import { ApiEndpoints } from './constants';
import { CarrierAppDefinition } from './carrier-app-definition';
export const createEndpointMapping = (
definition: CarrierAppDefinition,
): [Method, string, Handler | undefined][] => [
[Method.POST, ApiEndpoints.CancelNotification, definition.CancelNotification],
[Method.POST, ApiEndpoints.CancelPickup, definition.CancelPickup],
[Method.POST, ApiEndpoints.CreateLabel, definition.CreateLabel],
[Method.POST, ApiEndpoints.CreateManifest, definition.CreateManifest],
[Method.POST, ApiEndpoints.GetManifest, definition.GetManifest],
[Method.POST, ApiEndpoints.CreateNotification, definition.CreateNotification],
[Method.POST, ApiEndpoints.GetRates, definition.GetRates],
[Method.POST, ApiEndpoints.NormalizeTrackingData, definition.NormalizeTrackingData],
[Method.POST, ApiEndpoints.Register, definition.Register],
[Method.POST, ApiEndpoints.SchedulePickup, definition.SchedulePickup],
[Method.POST, ApiEndpoints.Track, definition.Track],
[Method.POST, ApiEndpoints.ValidateInboundData, definition.ValidateInboundData],
[Method.POST, ApiEndpoints.VoidLabels, definition.VoidLabels],
[Method.POST, ApiEndpoints.GetRelayPoints, definition.GetRelayPoints],
[Method.POST, ApiEndpoints.GetServicePoints, definition.GetServicePoints],
[Method.POST, ApiEndpoints.GetServicePoint, definition.GetServicePoint],
[Method.POST, ApiEndpoints.ImportTrackingEvents, definition.ImportTrackingEvents],
[Method.POST, ApiEndpoints.UpdateSettings, definition.UpdateSettings],
...mapExtensions(definition.Extensions),
];