import { appReducers } from './store/reducers/app.reducer';
import { BlueprintEffects } from './store/effects/blueprint.effects';
-
+import { ResourcesEffects } from './store/effects/resources.effects';
import { ApiService } from './services/api.service';
// import { BlueprintService } from './services/blueprint.service';
imports: [
CommonModule,
StoreModule.forRoot(appReducers),
- EffectsModule.forRoot([BlueprintEffects]),
+ EffectsModule.forRoot([BlueprintEffects,ResourcesEffects]),
StoreRouterConnectingModule.forRoot({stateKey: 'router'}),
HttpClientModule
],
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Injectable } from '@angular/core';
+import { Action, Store } from '@ngrx/store';
+import { IResources } from '../models/resources.model';
+import { IResourcesState } from '../models/resourcesState.model';
+
+export const LOAD_RESOURCES = 'LOAD_RESOURCES';
+export const LOAD_RESOURCES_SUCCESS = 'LOAD_RESOURCES_SUCCESS';
+export const LOAD_RESOURCES_FAILURE = 'LOAD_RESOURCES_FAILURE';
+export const UPDATE_RESOURCES ='UPDATE_RESOURCES';
+export const SET_RESOURCES_STATE = 'SET Resources state';
+
+
+export class LoadResources implements Action {
+ readonly type = LOAD_RESOURCES;
+ constructor(public startLoadSuccess?: boolean) {}
+}
+
+export class LoadResourcesSuccess implements Action {
+ readonly type = LOAD_RESOURCES_SUCCESS;
+ constructor(public payload: IResources) {}
+}
+
+export class LoadResourcesFailure implements Action {
+ readonly type = LOAD_RESOURCES_FAILURE;
+ constructor(public error: any) {}
+}
+
+export class SetResourcesState implements Action {
+ readonly type = SET_RESOURCES_STATE;
+ constructor(public payload: IResourcesState) {}
+}
+
+export class UpdateResources implements Action {
+ readonly type = UPDATE_RESOURCES;
+ constructor(public payload: IResources) {}
+}
+
+export type Actions = LoadResources | LoadResourcesSuccess | LoadResourcesFailure | SetResourcesState;
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+import { Injectable } from '@angular/core';
+import { Effect, ofType, Actions } from '@ngrx/effects';
+import { Store, select } from '@ngrx/store';
+import { of } from 'rxjs';
+import { switchMap, map, withLatestFrom, catchError } from 'rxjs/operators';
+
+import { IAppState } from '../state/app.state';
+import * as ResourcesActions from '../actions/resources.action';
+
+@Injectable()
+export class ResourcesEffects {
+
+ constructor(
+ private _actions$: Actions,
+ private _store: Store<IAppState>
+ ) {}
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+export interface IEntrySchema{
+ Type:string;
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import {IEntrySchema} from './entrySchema.model';
+
+export interface IPropertyData{
+ discription:string;
+ _type:string;
+ required:boolean;
+ entry_schema:IEntrySchema;
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { IResources } from '../models/resources.model';
+
+export interface IResourcesHttp {
+ resources: IResources;
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+import { ISourcesData } from './sourcesData.model';
+import { IPropertyData } from './propertyData.model';
+
+export interface IResources {
+ name:string ;
+ tags:string;
+ updated_bt:string;
+ property: IPropertyData;
+ sources: ISourcesData;
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+import { IResources } from './resources.model';
+
+export interface IResourcesState {
+ resources: IResources,
+ isLoadSuccess: boolean;
+ isUpdateSuccess: boolean;
+ isSaveSuccess: boolean;
+}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+
+export interface ISourcesData{
+sources: object[];
+}
\ No newline at end of file
import { IAppState } from '../state/app.state';
import { blueprintReducer } from '../reducers/blueprint.reducer';
+import { resourcesReducer } from '../reducers/resources.reducer';
export const appReducers: ActionReducerMap<IAppState, any> = {
router: routerReducer,
- blueprint: blueprintReducer
+ blueprint: blueprintReducer,
+ resources:resourcesReducer
};
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { Action } from '@ngrx/store';
+import { IResources } from '../models/resources.model';
+import { IResourcesState } from '../models/resourcesState.model';
+import { initialResourcesState } from '../state/resources.state';
+import * as ResourcesActions from '../actions/resources.action';
+
+export function resourcesReducer(state: IResourcesState = initialResourcesState, action: ResourcesActions.Actions) : IResourcesState {
+ switch(action.type) {
+ case ResourcesActions.LOAD_RESOURCES_SUCCESS:
+ return {...state,
+ resources: action.payload
+ }
+ default:
+ return state;
+ }
+}
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { createSelector } from '@ngrx/store';
+
+import { IAppState } from '../state/app.state';
+import { IResourcesState } from '../models/resourcesState.model';
+
+const selectResourcesFromAppState = (state: IAppState) => state.resources;
+
+export const selectResources = createSelector(
+ selectResourcesFromAppState,
+ (state: IResourcesState) => state.resources
+);
\ No newline at end of file
import { RouterReducerState } from '@ngrx/router-store';
import { IBlueprintState } from '../models/blueprintState.model';
import { initialBlueprintState } from './blueprint.state';
+import { IResourcesState } from '../models/resourcesState.model';
+import { initialResourcesState } from './resources.state';
export interface IAppState {
router? : RouterReducerState,
- blueprint: IBlueprintState
+ blueprint: IBlueprintState,
+ resources: IResourcesState
}
export const initialAppState: IAppState = {
- blueprint: initialBlueprintState
+ blueprint: initialBlueprintState,
+ resources: initialResourcesState
}
\ No newline at end of file
--- /dev/null
+/*
+* ============LICENSE_START=======================================================
+* ONAP : CDS
+* ================================================================================
+* Copyright (C) 2019 TechMahindra
+*=================================================================================
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+* ============LICENSE_END=========================================================
+*/
+import { IResourcesState } from '../models/resourcesState.model';
+import { IResources } from '../models/resources.model';
+
+export const initialResourcesState : IResourcesState = {
+ resources : {} as IResources,
+ isLoadSuccess: false,
+ isUpdateSuccess: false,
+ isSaveSuccess: false,
+}
\ No newline at end of file