@bit-ui-libs/common
Version:
This library was generated with [Nx](https://nx.dev).
50 lines (39 loc) • 1.53 kB
text/typescript
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}`);
}
}