Drawing Board RECREATE will use a new route that retrieves a template
[vid.git] / vid-webpack-master / src / app / shared / resolvers / recreate / recreate.resolver.ts
1 import {Injectable} from "@angular/core";
2 import {NgRedux} from "@angular-redux/store";
3
4 import {ActivatedRouteSnapshot, Resolve} from "@angular/router";
5 import {Observable} from "rxjs";
6 import {AppState} from "../../store/reducers";
7 import {InstantiationTemplatesService} from "../../services/templateService/instantiationTemplates.service";
8 import {forkJoin} from "rxjs/observable/forkJoin";
9 import {AaiService} from "../../services/aaiService/aai.service";
10 import {ServiceInstance} from "../../models/serviceInstance";
11
12 @Injectable()
13 export class RecreateResolver implements Resolve<Observable<[any, ServiceInstance]>> {
14   constructor(private _templateService: InstantiationTemplatesService,
15               private _aaiService: AaiService,
16               private _store: NgRedux<AppState>) {
17   }
18
19   resolve(route: ActivatedRouteSnapshot): Observable<[any, ServiceInstance]> {
20     const serviceModelId: string = route.queryParamMap.get("serviceModelId");
21     const jobId: string = route.queryParamMap.get("jobId");
22
23     let serviceModelApi = this._aaiService.getServiceModelById(serviceModelId);
24     let instantiationTemplateApi = this._templateService.retrieveAndStoreInstantiationTemplateTopology(jobId, serviceModelId);
25
26     return forkJoin([serviceModelApi, instantiationTemplateApi])
27   }
28
29 }