UNPKG

ns2-front-module-common

Version:
226 lines (225 loc) 7.91 kB
import { Injector } from "@angular/core"; import { CookieService } from "ngx-cookie-service"; import { SocialModel } from '../models/social.model'; import { ResponseListModel } from "../models/response-list.model"; import { RealtorInterface } from "../intefraces/realtor.interface"; import { StorageInterface } from "../intefraces/storage.interface"; import { CurrentUserInfoInterface } from "../intefraces/current-user-info.interface"; import { RegisterInfoInterface } from "../intefraces/register-info.interface"; import { Subscription } from "rxjs"; import { Observable } from 'rxjs/Observable'; import "rxjs/operator/map"; export declare const STORAGE_TOKEN_KEY = "token"; export declare class CurrentUserService { private injector; private persistStorage; private tempStorage; private cookiesService; static ESB_CHANNEL_NAME: string; static ESB_SESSION_CHANGE_CITY: string; static ESB_INFO_UPDATE: string; static ESB_USER_LOGIN: string; static ESB_USER_LOGOUT: string; static USER_TOKEN_NAME: string; private token; private info; private usersEndPoint; private ESBChannel; private temporaryDeviceUUID; constructor(injector: Injector, persistStorage: StorageInterface, tempStorage: StorageInterface, cookiesService: CookieService); getSocials(): Promise<SocialModel[]>; /** * Предзагрузка * * @returns {Promise<string[]>} */ load(): Promise<any>; /** * Установка URL до сервиса users * * @param usersEndPoint */ setUsersEndPoint(usersEndPoint: string): void; /** * Проверка текущей сессии пользователя * * @returns {Promise<T>} */ isAuth(): boolean; /** * Авторизация в системе * * @param email * @param password * @param rememberMe */ login(email: string, password: string, rememberMe: boolean): Promise<any>; /** * Регистрация нового пользователя * * @param email * @param password * @param password_repeat * @param firstname * @param lastname * @param geo_guid * @param phone */ register(email: string, password: string, password_repeat: string, firstname: string, lastname: string, geo_guid: string, phone: string): Promise<RegisterInfoInterface>; /** * Проверка email адреса на первом этапе регистрации * * @param email * @returns {Promise<T>} */ registerCheckEmail(email: string): Promise<string>; /** * Замена номера телефона при переходе с третьего шага на второй * * @param user_guid * @param phone * @returns {Promise<T>} */ registerChangePhone(user_guid: string, phone: string): Promise<string>; /** * Проверка кода подтверждения из СМС * * @param user_guid * @param code * @returns {Promise<T>} */ confirm(user_guid: string, code: string): Promise<RegisterInfoInterface>; loadInfoRemote(): Promise<CurrentUserInfoInterface>; /** * Запрос ссылки сброса пароля на почту * * @param email * @returns {Promise<T>} */ reminderPassword(email: string): Promise<any>; /** * Проверка токена восстановления пароля. Используется при открытии страницы восстановления, токен передается * в параметре урла * * @param token * @returns {Promise<T>} */ restorePasswordCheck(token: string): Promise<any>; /** * Восстановление пароля * * @param token * @param password * @param password_repeat * @returns {Promise<T>} */ restorePassword(token: string, password: string, password_repeat: string): Promise<any>; /** * Установка города * * @param geo_guid * @returns {Promise<T>} */ setGeo(geo_guid: string): Promise<any>; /** * Добавляет подписчика на смену текущего города * @param {Function} then Функция-подписчик * @returns {Subscription} */ onGeoChange(then: (oldGeoGuid: string, newGeoGuid: string) => void): Subscription; /** * Добавляет подписчика на авторизацию пользователя * @param {Function} then Функция-подписчик * @returns {Subscription} */ onLogin(then: (value: CurrentUserInfoInterface) => void): Subscription; /** * Добавляет подписчика на выход пользователя из системы * @param {Function} then Функция-подписчик * @returns {Subscription} */ onLogout(then: () => void): Subscription; /** * Выход из аккаунта * * @returns {Promise<T>} */ logout(): Promise<any>; localLogout(): Promise<any>; /** * Обновить профиль текущего пользователя * @param newUserData Новые данные пользователя */ saveProfile(newUserData: FormData): Observable<CurrentUserInfoInterface>; /** * Отправить данные пользователя на модерацию * @param userData Данные пользователя */ sendOnModeration(userData: FormData): Observable<CurrentUserInfoInterface>; /** * Сохранить токен в локал сторадж * * @param token * @param rememberMe */ private storeToken(token, rememberMe); /** * Восстанавливает значение токена из хранилища */ private restoreToken(); setRejectionReason(reason: string): void; /** * Получить токен текущего пользователя * * @returns {string} */ getToken(): string; /** * Установить токен пользователю * * @param token */ setToken(token: string): void; /** * Получить информацию о текущем пользователе * * @returns {CurrentUserInfoInterface} */ getInfo(): CurrentUserInfoInterface; /** * Метод отправки приглашения пользователю * @param {string} email E-mail пользователя которого необходимо пригласить * @returns {Promise<T>} */ invite(email: string): Promise<any>; /** * Получить всех партнеров текущего пользователя * * @returns {Promise<T>} */ getPartners(): Promise<ResponseListModel<RealtorInterface>>; /** * Добавить избранных партнеров текущему пользователю * * @returns {Promise<T>} */ addPartners(partnersGuid: string[]): Promise<boolean>; /** * Установить избранных партнеров текущему пользователю * * @returns {Promise<T>} */ setPartners(partnersGuid: string[]): Promise<boolean>; /** * Удалить избранного пользователя * * @returns {Promise<T>} */ deletePartner(partnerGuid: string): Promise<boolean>; /** * Возвращает временный уникальный идентификатор устройства * @returns {string} */ getTemporaryDeviceUUID(): string; readonly isCandidate: boolean; }