@terra-js/terra-kit
Version:
SDK for mobile bridge to offer unified method signatures for Android/iOS.
49 lines (48 loc) • 1.95 kB
TypeScript
import { ModuleWrapper, Result } from '@terra-js/common';
import { BaseModule } from '../BaseModule';
import { SearchProfileRequest, SearchProfileResult, RegisterProfileRequest, Address, Profile, OperationFlowConfig, AddressRequest, ChangeDealerResult, DeleteAddressRequest, CustomerTypeResult } from './types';
export default class UserModule implements BaseModule {
wrappedModule: ModuleWrapper;
constructor();
/**
* Get profile of user currently login to the App
* @returns
*/
getUserProfile: () => Promise<Result<Profile>>;
/**
* Update info of an user
* @param request profile of the user currently login to the App
* @returns
*/
updateUserProfile: (profile: Profile) => Promise<Result<Profile>>;
/**
* Lookup customer based on keyword.
* @param request
* @returns
*/
searchProfile: (request: SearchProfileRequest) => Promise<Result<SearchProfileResult>>;
/**
* Update info of customer.
* @param request
* @returns
*/
upsertProfile: (profile: Profile) => Promise<Result<Profile>>;
registerProfile: (request: RegisterProfileRequest) => Promise<Result<void>>;
createNewAddress: (request: AddressRequest) => Promise<Result<Address>>;
updateAddress: (request: AddressRequest) => Promise<Result<string>>;
deleteAddress: (request: DeleteAddressRequest) => Promise<Result<string>>;
/**
* Get appFlow of the current login user
* @returns
*/
getOperationFlowConfig: () => Promise<Result<OperationFlowConfig>>;
changeDealer: (request: {
phone: string;
}) => Promise<Result<ChangeDealerResult>>;
fetchUserAddressList: () => Promise<Result<Address[]>>;
getDetailProfile: (request: {
id: string;
}) => Promise<Result<Profile>>;
publishCustomer: (customer: Profile) => Promise<Result<void>>;
fetchCustomerTypes: () => Promise<Result<CustomerTypeResult>>;
}