import { Request } from 'express' ; import { IConfig } from 'config' ; class AbstractUserProxy { protected _request : Request ; protected _config : IConfig ; public api : Record < string , Record < string , Function > > ; protected constructor ( config , req ) { this . _config = config ; this . _request = req ; } public register ( userData ) { throw new Error ( 'UserProxy::register must be implemented for specific platform' ) ; } public login ( userData ) { throw new Error ( 'UserProxy::login must be implemented for specific platform' ) ; } public me ( requestToken ) { throw new Error ( 'UserProxy::me must be implemented for specific platform' ) ; } public orderHistory ( requestToken , pageSize , currentPage ) { throw new Error ( 'UserProxy::orderHistory must be implemented for specific platform' ) ; } public resetPassword ( emailData ) { throw new Error ( 'UserProxy::resetPassword must be implemented for specific platform' ) ; } public update ( userData ) { throw new Error ( 'AbstractUserProxy::update must be implemented for specific platform' ) ; } public changePassword ( passwordData ) { throw new Error ( 'AbstractUserProxy::changePassword must be implemented for specific platform' ) ; } public resetPasswordUsingResetToken ( resetData ) { throw new Error ( 'AbstractUserProxy::resetPasswordUsingResetToken must be implemented for specific platform' ) ; } } export default AbstractUserProxy ;