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()
|
2019-09-23 05:23:24 +00:00
|
|
|
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
|
|
|
}
|
|
|
|
}
|