45 lines
1.1 KiB
TypeScript
45 lines
1.1 KiB
TypeScript
import { useApi } from '~/composables/useApi'
|
|
|
|
export interface AddressPayload {
|
|
street: string
|
|
street2?: string | null
|
|
postalCode: string
|
|
city: string
|
|
countryCode: string
|
|
}
|
|
|
|
export interface AddressData extends AddressPayload {
|
|
id: number
|
|
}
|
|
|
|
export async function createAddress(
|
|
payload: AddressPayload
|
|
): Promise<AddressData> {
|
|
const api = useApi()
|
|
|
|
return await api.post<AddressData>('addresses', payload, {
|
|
toastErrorKey: 'errors.address.create',
|
|
toastSuccessKey: 'success.address.create',
|
|
})
|
|
}
|
|
|
|
export async function updateAddress(
|
|
id: number,
|
|
payload: AddressPayload
|
|
): Promise<AddressData> {
|
|
const api = useApi()
|
|
|
|
return await api.patch<AddressData>(`addresses/${id}`, payload, {
|
|
toastErrorKey: 'errors.address.update',
|
|
toastSuccessKey: 'success.address.update',
|
|
})
|
|
}
|
|
|
|
export async function getAddress(id: number): Promise<AddressData> {
|
|
const api = useApi()
|
|
|
|
return await api.get<AddressData>(`addresses/${id}`, {}, {
|
|
toastErrorKey: 'errors.address.fetch',
|
|
})
|
|
}
|