ns2-front-module-common
Version:
NS2 common module
226 lines (225 loc) • 7.91 kB
TypeScript
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;
}