Skip to content

Commit

Permalink
Merge pull request #3 from Fileless/issue-#2-resolve-all-parameters-f…
Browse files Browse the repository at this point in the history
…or-OidcFacade

remove index.ts barrels
  • Loading branch information
alx-andru authored Oct 18, 2018
2 parents 097a89d + c67120c commit 10bd8d5
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 21 deletions.
8 changes: 5 additions & 3 deletions projects/ng-oidc-client/src/lib/effects/oidc.effect.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import { User as OidcUser } from 'oidc-client';
import { Observable, of } from 'rxjs';
import { catchError, concatMap, map, switchMap, tap } from 'rxjs/operators';
import { OidcActions } from '../actions';

import { Config, OIDC_CONFIG } from '../models/config.model';
import { ACTION_NO_ACTION } from '../models/constants';
import { OidcService } from '../services/oidc.service';
import { ACTION_NO_ACTION, OIDC_CONFIG, Config } from '../models';

@Injectable()
export class OidcEffects {
Expand All @@ -27,7 +27,9 @@ export class OidcEffects {
tap(userData => console.log('Effect getOidcUser - Got User', userData)),
concatMap((userData: OidcUser) => {
const r: Action[] = [new OidcActions.UserFound(userData)];
const automaticSilentRenew = this.config != null && this.config.oidc_config.automaticSilentRenew;
const automaticSilentRenew =
this.config.oidc_config.automaticSilentRenew != null &&
this.config.oidc_config.automaticSilentRenew;
// user expired, initiate silent sign-in if configured to automatic
if (userData != null && userData.expired === true && automaticSilentRenew === true) {
r.push(new OidcActions.SigninSilent(args));
Expand Down
29 changes: 19 additions & 10 deletions projects/ng-oidc-client/src/lib/facades/oidc.facade.ts
Original file line number Diff line number Diff line change
@@ -1,27 +1,36 @@
import { Injectable } from '@angular/core';
import { Injectable, Inject } from '@angular/core';
import { Store } from '@ngrx/store';
import { OidcClient, SigninRequest, SignoutRequest, User as OidcUser, UserManager } from 'oidc-client';
import { Observable } from 'rxjs';
import { filter, take } from 'rxjs/operators';
import { OidcActions } from '../actions';
import { OidcEvent, RequestArugments } from '../models';
import * as fromOidc from '../reducers/oidc.reducer';
import { OidcService } from '../services';
import {
OidcState,
getOidcLoading,
isIdentityExpiring,
isIdentityExpired,
isLoggedIn,
getOidcIdentity,
ErrorState,
selectOidcErrorState
} from '../reducers/oidc.reducer';
import { OidcService } from '../services/oidc.service';

@Injectable({
providedIn: 'root'
})
export class OidcFacade {
constructor(private store: Store<fromOidc.OidcState>, private oidcService: OidcService) {
constructor(private store: Store<OidcState>, @Inject(OidcService) private oidcService: OidcService) {
this.registerDefaultEvents();
}

loading$: Observable<boolean> = this.store.select(fromOidc.getOidcLoading);
expiring$: Observable<boolean> = this.store.select(fromOidc.isIdentityExpiring);
expired$: Observable<boolean> = this.store.select(fromOidc.isIdentityExpired);
loggedIn$: Observable<boolean> = this.store.select(fromOidc.isLoggedIn);
identity$: Observable<OidcUser> = this.store.select(fromOidc.getOidcIdentity);
errors$: Observable<fromOidc.ErrorState> = this.store.select(fromOidc.selectOidcErrorState);
loading$: Observable<boolean> = this.store.select(getOidcLoading);
expiring$: Observable<boolean> = this.store.select(isIdentityExpiring);
expired$: Observable<boolean> = this.store.select(isIdentityExpired);
loggedIn$: Observable<boolean> = this.store.select(isLoggedIn);
identity$: Observable<OidcUser> = this.store.select(getOidcIdentity);
errors$: Observable<ErrorState> = this.store.select(selectOidcErrorState);

// default bindings to events
private addUserUnLoaded = function() {
Expand Down
14 changes: 9 additions & 5 deletions projects/ng-oidc-client/src/lib/ng-oidc-client.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,24 @@ import { EffectsModule } from '@ngrx/effects';
import { StoreModule } from '@ngrx/store';
import { OidcEffects } from './effects/oidc.effect';
import { OidcFacade } from './facades/oidc.facade';
import { Config, OIDC_CONFIG } from './models';
import { oidcReducer } from './reducers';
import { OidcService } from './services';
import { Config, OIDC_CONFIG } from './models/config.model';
import { oidcReducer } from './reducers/oidc.reducer';
import { OidcService } from './services/oidc.service';

@NgModule({
imports: [CommonModule, StoreModule.forFeature('oidc', oidcReducer), EffectsModule.forFeature([OidcEffects])],
declarations: [],
providers: [OidcEffects, OidcFacade, OidcService]
providers: [OidcEffects]
})
export class NgOidcClientModule {
static forRoot(config: Config): ModuleWithProviders {
return {
ngModule: NgOidcClientModule,
providers: [{ provide: OIDC_CONFIG, useValue: config }]
providers: [
{ provide: OIDC_CONFIG, useValue: config },
{ provide: OidcService, useClass: OidcService, deps: [OIDC_CONFIG] },
{ provide: OidcFacade, useClass: OidcFacade, deps: [OidcService] }
]
};
}
}
1 change: 0 additions & 1 deletion projects/ng-oidc-client/src/lib/reducers/index.ts

This file was deleted.

1 change: 0 additions & 1 deletion projects/ng-oidc-client/src/lib/services/index.ts

This file was deleted.

3 changes: 2 additions & 1 deletion projects/ng-oidc-client/src/lib/services/oidc.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import { isPlatformBrowser } from '@angular/common';
import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
import { Log, OidcClient, SigninRequest, SignoutRequest, User as OidcUser, UserManager } from 'oidc-client';
import { from, Observable } from 'rxjs';
import { Config, OidcEvent, OIDC_CONFIG, StorageKeys } from '../models';
import { Config, OIDC_CONFIG } from '../models/config.model';
import { OidcEvent, StorageKeys } from '../models';

@Injectable({
providedIn: 'root'
Expand Down

0 comments on commit 10bd8d5

Please sign in to comment.