UNPKG

@bit-ui-libs/common

Version:
49 lines (39 loc) 1.78 kB
import { BaseService, BaseServiceOptions } from '../../api/services/base-service'; import { ShippingAddress } from '../interfaces'; import { ProfileAddShippingAddressRequest, EditShippingAddressRequest, ListShippingAddressesRequest, } from './shipping-address.service.interfaces'; export type ShippingAddressServiceOptions = BaseServiceOptions & { profileApiUrl: string }; export class ShippingAddressService extends BaseService { private profileApiUrl: string; constructor(opts: ShippingAddressServiceOptions) { super(opts); this.profileApiUrl = opts.profileApiUrl; } listShippingAddresses(profileId: string, req: ListShippingAddressesRequest) { return this.get<ShippingAddress[]>(`${this.profileApiUrl}/${profileId}/shipping-addresses`, req); } addShippingAddress(profileId: string, req: ProfileAddShippingAddressRequest) { return this.post<ShippingAddress, ProfileAddShippingAddressRequest>( `${this.profileApiUrl}/${profileId}/shipping-addresses`, req ); } getDefaultShippingAddress(profileId: string) { return this.get<ShippingAddress>(`${this.profileApiUrl}/${profileId}/shipping-addresses/default`); } getShippingAddressById(profileId: string, addressId: string) { return this.get<ShippingAddress>(`${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`); } editShippingAddress(profileId: string, addressId: string, req: EditShippingAddressRequest) { return this.put<ShippingAddress, EditShippingAddressRequest>( `${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`, req ); } removeShippingAddress(profileId: string, addressId: string) { return this.delete<void>(`${this.profileApiUrl}/${profileId}/shipping-addresses/${addressId}`); } }