UNPKG

@terra-js/terra-kit

Version:

SDK for mobile bridge to offer unified method signatures for Android/iOS.

49 lines (48 loc) 1.95 kB
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>>; }