next-ucap-messenger/projects/ucap-webmessenger-app/src/app/resolvers/messenger.resolver.ts

114 lines
3.7 KiB
TypeScript
Raw Normal View History

2019-09-19 05:15:43 +00:00
import { Injectable } from '@angular/core';
import {
Resolve,
ActivatedRouteSnapshot,
RouterStateSnapshot
} from '@angular/router';
2019-09-24 09:42:53 +00:00
import { Observable, throwError } from 'rxjs';
import { map, tap, mergeMap, catchError, take } from 'rxjs/operators';
2019-09-19 05:15:43 +00:00
2019-09-24 09:42:53 +00:00
import { Store } from '@ngrx/store';
2019-09-19 05:15:43 +00:00
import { ProtocolService } from '@ucap-webmessenger/protocol';
import { SessionStorageService } from '@ucap-webmessenger/web-storage';
import { PublicApiService } from '@ucap-webmessenger/api-public';
import * as AppStore from '../store';
import * as VersionInfoStore from '../store/setting/version-info';
2019-09-27 03:53:21 +00:00
import {
LoginInfo,
KEY_LOGIN_INFO,
EnvironmentsInfo,
KEY_ENVIRONMENTS_INFO
} from '../types';
2019-09-19 05:15:43 +00:00
import { InnerProtocolService } from '@ucap-webmessenger/protocol-inner';
2019-09-19 06:51:42 +00:00
import {
AuthenticationProtocolService,
2019-09-24 09:42:53 +00:00
SSOMode,
LoginResponse
2019-09-19 06:51:42 +00:00
} from '@ucap-webmessenger/protocol-authentication';
2019-09-24 09:42:53 +00:00
2019-09-24 00:23:30 +00:00
import * as AuthenticationStore from '@app/store/account/authentication';
2019-09-19 05:15:43 +00:00
@Injectable()
export class AppMessengerResolver implements Resolve<void> {
2019-09-19 05:15:43 +00:00
constructor(
private store: Store<any>,
private sessionStorageService: SessionStorageService,
private publicApiService: PublicApiService,
private protocolService: ProtocolService,
2019-09-19 06:51:42 +00:00
private authenticationProtocolService: AuthenticationProtocolService,
2019-09-19 05:15:43 +00:00
private innerProtocolService: InnerProtocolService
) {}
resolve(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): void | Observable<void> | Promise<void> {
const loginInfo = this.sessionStorageService.get<LoginInfo>(KEY_LOGIN_INFO);
2019-09-27 03:53:21 +00:00
const environmentsInfo = this.sessionStorageService.get<EnvironmentsInfo>(
KEY_ENVIRONMENTS_INFO
);
2019-09-19 05:15:43 +00:00
2019-09-24 09:42:53 +00:00
return new Promise<void>((resolve, reject) => {
2019-09-27 03:53:21 +00:00
resolve();
// this.publicApiService
// .versionInfo2({
// deviceType: environmentsInfo.deviceType,
// companyGroupType: loginInfo.companyGroupType,
// companyCode: loginInfo.companyCode,
// loginId: loginInfo.loginId
// })
// .pipe(
// take(1),
// tap(versionInfo2Res => {
// this.store.dispatch(VersionInfoStore.fetchSuccess(versionInfo2Res));
// }),
// mergeMap(versionInfo2Res =>
// this.protocolService.connect(versionInfo2Res.serverIp)
// ),
// mergeMap(() => this.innerProtocolService.conn({})),
// mergeMap(connRres =>
// this.authenticationProtocolService.login({
// loginId: loginInfo.loginId,
// loginPw: loginInfo.loginPw,
// deviceType: environmentsInfo.deviceType,
// deviceId: ' ',
// token: '',
// localeCode: loginInfo.localeCode,
// pushId: ' ',
// companyCode: loginInfo.companyCode,
// passwordEncodingType: 1,
// clientVersion: '',
// reconnect: false,
// ip: 'localhost',
// hostName: '',
// ssoMode: SSOMode.AUTH,
// userSpecificInformation: 'PRO_000482',
// productId: 'PRO_000482',
// productName: 'EZMessenger'
// })
// ),
// map(loginRes => {
// this.store.dispatch(
// AuthenticationStore.loginSuccess({
// loginInfo: loginRes
// })
// );
// }),
// catchError(err => {
// return throwError(err);
// })
// )
// .subscribe(
// () => {
// resolve();
// },
// err => {
// reject();
// }
// );
2019-09-24 09:42:53 +00:00
});
2019-09-19 05:15:43 +00:00
}
}