Skip to content

Commit

Permalink
SHIBUI-985 added resolver service
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Nov 14, 2018
1 parent 9b51a67 commit 4a3ae5f
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ export class NewResolverComponent {
})
);

this.actionsSubscription = this.route.queryParams.pipe(
this.actionsSubscription = this.route.data.pipe(
distinctUntilChanged(),
map(params => new SelectDraftRequest(params.id))
map(data => new SelectDraftRequest(data.draft))
).subscribe(this.store);
}
}
25 changes: 0 additions & 25 deletions ui/src/app/metadata/resolver/effect/draft-collection.effects.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,13 +63,6 @@ export class DraftCollectionEffects {
)
);

@Effect({ dispatch: false })
addDraftSuccessRedirect$ = this.actions$.pipe(
ofType<actions.AddDraftSuccess>(DraftActionTypes.ADD_DRAFT_SUCCESS),
map(getPayload),
tap(provider => this.router.navigate(['metadata', 'resolver', provider.entityId, 'wizard']))
);

@Effect()
updateDraft$ = this.actions$.pipe(
ofType<actions.UpdateDraftRequest>(DraftActionTypes.UPDATE_DRAFT_REQUEST),
Expand Down Expand Up @@ -107,24 +100,6 @@ export class DraftCollectionEffects {
map(id => new actions.LoadDraftRequest())
);

@Effect()
selectDraftError$ = this.actions$.pipe(
ofType<SelectDraftError>(DraftActionTypes.SELECT_ERROR),
map(getPayload),
switchMap(id =>
this.draftService
.save({ id: `r-${ Date.now() }`, serviceProviderName: '' })
.pipe(
map(p => new SelectDraftRequest(p.id)),
catchError(e => of(new SelectDraftError()))
)
),
tap(() => {
// this.store.dispatch(new ClearWizard());
this.store.dispatch(new Clear());
})
);

@Effect()
removeDraft$ = this.actions$.pipe(
ofType<actions.RemoveDraftRequest>(DraftActionTypes.REMOVE_DRAFT),
Expand Down
4 changes: 3 additions & 1 deletion ui/src/app/metadata/resolver/resolver.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import { ResolverSelectComponent } from './container/resolver-select.component';
import { MetadataSourceEditor } from '../domain/model/wizards/metadata-source-editor';
import { FinishFormComponent } from './component/finish-form.component';
import { ProviderFormFragmentComponent } from './component/provider-form-fragment.component';
import { CreateDraftResolverService } from './service/create-draft.resolver';

@NgModule({
declarations: [
Expand Down Expand Up @@ -75,7 +76,8 @@ export class ResolverModule {
return {
ngModule: RootResolverModule,
providers: [
CopyIsSetGuard
CopyIsSetGuard,
CreateDraftResolverService
]
};
}
Expand Down
4 changes: 4 additions & 0 deletions ui/src/app/metadata/resolver/resolver.routing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import { ResolverWizardStepComponent } from './container/resolver-wizard-step.co
import { ResolverEditComponent } from './container/resolver-edit.component';
import { ResolverEditStepComponent } from './container/resolver-edit-step.component';
import { ResolverSelectComponent } from './container/resolver-select.component';
import { CreateDraftResolverService } from './service/create-draft.resolver';

export const ResolverRoutes: Routes = [
{
Expand All @@ -21,6 +22,9 @@ export const ResolverRoutes: Routes = [
{
path: 'new',
component: NewResolverComponent,
resolve: {
draft: CreateDraftResolverService
},
children: [
{ path: '', redirectTo: 'blank/common', pathMatch: 'prefix' },
{
Expand Down
26 changes: 26 additions & 0 deletions ui/src/app/metadata/resolver/service/create-draft.resolver.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Observable, of } from 'rxjs';
import { Store } from '@ngrx/store';
import { MetadataResolver } from '../../domain/model';
import { AddDraftRequest } from '../action/draft.action';
import * as fromResolver from '../reducer';

@Injectable()
export class CreateDraftResolverService {
constructor(
private store: Store<fromResolver.State>
) { }

resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<string> | Observable<never> {
let id = route.paramMap.get('id');
let resolver = <MetadataResolver>{
id: `r-${Date.now()}`
};
if (!id) {
id = resolver.id;
this.store.dispatch(new AddDraftRequest(resolver));
}
return of(id);
}
}

0 comments on commit 4a3ae5f

Please sign in to comment.