47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { http, unwrapApiResponse, type ApiEnvelope } from '@/shared/api/http'
|
|||
|
|
import type {
|
||
|
|
InboundMeasurementDetail,
|
||
|
|
InboundMeasurementDraftSaved,
|
||
|
|
InboundMeasurementSubmitted,
|
||
|
|
SaveInboundMeasurementDraftRequest,
|
||
|
|
SubmitInboundMeasurementRequest,
|
||
|
|
} from './types'
|
||
|
|
|
||
|
|
function measurementPath(inboundId: string) {
|
||
|
|
return `/platform/v1/first-leg/inbounds/${encodeURIComponent(inboundId)}/measurement`
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function getInboundMeasurement(customerId: string, inboundId: string) {
|
||
|
|
const response = await http.get<ApiEnvelope<InboundMeasurementDetail>, ApiEnvelope<InboundMeasurementDetail>>(
|
||
|
|
measurementPath(inboundId),
|
||
|
|
{ params: { tenantId: customerId } },
|
||
|
|
)
|
||
|
|
return unwrapApiResponse(response)
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function saveInboundMeasurementDraft(
|
||
|
|
customerId: string,
|
||
|
|
inboundId: string,
|
||
|
|
payload: SaveInboundMeasurementDraftRequest,
|
||
|
|
) {
|
||
|
|
const response = await http.put<ApiEnvelope<InboundMeasurementDraftSaved>, ApiEnvelope<InboundMeasurementDraftSaved>>(
|
||
|
|
`${measurementPath(inboundId)}/draft`,
|
||
|
|
payload,
|
||
|
|
{ params: { tenantId: customerId } },
|
||
|
|
)
|
||
|
|
return unwrapApiResponse(response)
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function submitInboundMeasurement(
|
||
|
|
customerId: string,
|
||
|
|
inboundId: string,
|
||
|
|
payload: SubmitInboundMeasurementRequest,
|
||
|
|
) {
|
||
|
|
const response = await http.post<ApiEnvelope<InboundMeasurementSubmitted>, ApiEnvelope<InboundMeasurementSubmitted>>(
|
||
|
|
`${measurementPath(inboundId)}/submit`,
|
||
|
|
payload,
|
||
|
|
{ params: { tenantId: customerId } },
|
||
|
|
)
|
||
|
|
return unwrapApiResponse(response)
|
||
|
|
}
|