UNPKG

@bit-ui-libs/common

Version:
50 lines (39 loc) 1.53 kB
import { BaseService, BaseServiceOptions } from '../../api/services/base-service'; import { UserTypeEnum } from '../enums'; import { UserAddress } from '../interfaces'; import { AddAddressRequest, EditAddressRequest, ListAddressesRequest, SearchAddressesRequest, } from './address.service.interfaces'; import { PagedResponse } from '../../common'; type AddressServiceOptions = BaseServiceOptions & { userType: UserTypeEnum }; export class AddressService extends BaseService { protected addressApiUrl: string; constructor(opts: AddressServiceOptions) { super(opts); this.addressApiUrl = `${this.apiUrl}/users/v1/${opts.userType}/addresses`; } searchAddresses(req: SearchAddressesRequest) { return this.get<PagedResponse<UserAddress>>(this.addressApiUrl, req); } listAddresses(req: ListAddressesRequest) { return this.get<UserAddress[]>(`${this.addressApiUrl}/list`, req); } addAddress(req: AddAddressRequest) { return this.post<UserAddress, AddAddressRequest>(`${this.addressApiUrl}`, req); } getMainAddress() { return this.get<UserAddress>(`${this.addressApiUrl}/main`); } getAddressById(id: string) { return this.get<UserAddress>(`${this.addressApiUrl}/${id}`); } editAddress(id: string, req: EditAddressRequest) { return this.put<UserAddress, EditAddressRequest>(`${this.addressApiUrl}/${id}`, req); } removeAddress(id: string) { return this.delete<void>(`${this.addressApiUrl}/${id}`); } }