Browse Source

feat: set oAuth configuration when dispatched the SetEnvironment action

pull/4956/head
mehmet-erim 6 years ago
parent
commit
532645a367
  1. 18
      npm/ng-packs/packages/core/src/lib/states/config.state.ts

18
npm/ng-packs/packages/core/src/lib/states/config.state.ts

@ -10,6 +10,9 @@ import { SetLanguage } from '../actions/session.actions';
import { ApplicationConfiguration } from '../models/application-configuration'; import { ApplicationConfiguration } from '../models/application-configuration';
import { Config } from '../models/config'; import { Config } from '../models/config';
import { SessionState } from './session.state'; import { SessionState } from './session.state';
import compare from 'just-compare';
import clone from 'just-clone';
import { OAuthService } from 'angular-oauth2-oidc';
@State<Config.State>({ @State<Config.State>({
name: 'ConfigState', name: 'ConfigState',
@ -29,7 +32,7 @@ export class ConfigState {
static getOne(key: string) { static getOne(key: string) {
const selector = createSelector([ConfigState], (state: Config.State) => { const selector = createSelector([ConfigState], (state: Config.State) => {
return state[key]; return clone(state[key]);
}); });
return selector; return selector;
@ -194,7 +197,7 @@ export class ConfigState {
return selector; return selector;
} }
constructor(private http: HttpClient, private store: Store) {} constructor(private http: HttpClient, private store: Store, private oAuthService: OAuthService) {}
@Action(GetAppConfiguration) @Action(GetAppConfiguration)
addData({ patchState, dispatch }: StateContext<Config.State>) { addData({ patchState, dispatch }: StateContext<Config.State>) {
@ -232,7 +235,16 @@ export class ConfigState {
} }
@Action(SetEnvironment) @Action(SetEnvironment)
setEnvironment({ patchState }: StateContext<Config.State>, { environment }: SetEnvironment) { setEnvironment(
{ getState, patchState }: StateContext<Config.State>,
{ environment }: SetEnvironment,
) {
const { oAuthConfig } = getState().environment;
if (!compare(oAuthConfig, environment.oAuthConfig)) {
this.oAuthService.configure(environment.oAuthConfig);
}
return patchState({ return patchState({
environment, environment,
}); });

Loading…
Cancel
Save