From 146b2cc2cae5f1819956c2df5c6729463aa613f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr> Date: Fri, 18 Jun 2021 15:19:07 +0200 Subject: [PATCH] Metamodel module => WIP --- client/src/app/admin/admin.module.ts | 11 +++++++ client/src/app/app.module.ts | 4 ++- .../store/effects/database.effects.ts | 2 +- .../metamodel/store/effects/survey.effects.ts | 28 ++++++++++++++++++ .../store/selectors/attribute.selector.ts | 29 +++++++++++++++++++ .../selectors/criteria-family.selector.ts | 29 +++++++++++++++++++ .../selectors/dataset-family.selector.ts | 29 +++++++++++++++++++ .../store/selectors/dataset.selector.ts | 29 +++++++++++++++++++ .../store/selectors/group.selector.ts | 29 +++++++++++++++++++ .../store/selectors/instance.selector.ts | 29 +++++++++++++++++++ .../selectors/output-category.selector.ts | 29 +++++++++++++++++++ .../store/selectors/output-family.selector.ts | 29 +++++++++++++++++++ .../store/selectors/survey.selector.ts | 29 +++++++++++++++++++ 13 files changed, 304 insertions(+), 2 deletions(-) create mode 100644 client/src/app/admin/admin.module.ts create mode 100644 client/src/app/metamodel/store/effects/survey.effects.ts create mode 100644 client/src/app/metamodel/store/selectors/attribute.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/criteria-family.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/dataset-family.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/dataset.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/group.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/instance.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/output-category.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/output-family.selector.ts create mode 100644 client/src/app/metamodel/store/selectors/survey.selector.ts diff --git a/client/src/app/admin/admin.module.ts b/client/src/app/admin/admin.module.ts new file mode 100644 index 00000000..c99555c7 --- /dev/null +++ b/client/src/app/admin/admin.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +@NgModule({ + declarations: [], + imports: [ + CommonModule + ], + providers: [] +}) +export class AdminModule { } \ No newline at end of file diff --git a/client/src/app/app.module.ts b/client/src/app/app.module.ts index 2b682964..3cb19d2c 100644 --- a/client/src/app/app.module.ts +++ b/client/src/app/app.module.ts @@ -14,6 +14,7 @@ import { environment } from '../environments/environment'; import { reducers, metaReducers } from './app.reducer'; import { CustomSerializer } from './custom-route-serializer'; import { MetamodelModule } from './metamodel/metamodel.module'; +import { AdminModule } from './admin/admin.module'; @NgModule({ declarations: [ @@ -44,7 +45,8 @@ import { MetamodelModule } from './metamodel/metamodel.module'; maxAge: 25, logOnly: environment.production }), - MetamodelModule + MetamodelModule, + AdminModule ], providers: [], bootstrap: [AppComponent] diff --git a/client/src/app/metamodel/store/effects/database.effects.ts b/client/src/app/metamodel/store/effects/database.effects.ts index 089d6999..0a8cfc00 100644 --- a/client/src/app/metamodel/store/effects/database.effects.ts +++ b/client/src/app/metamodel/store/effects/database.effects.ts @@ -9,7 +9,7 @@ import { DatabaseService } from '../services/database.service'; @Injectable() export class DatabaseEffects { - loadMovies$ = createEffect(() => + loadDatabases$ = createEffect(() => this.actions$.pipe( ofType(databaseActions.loadDatabaseList), mergeMap(() => this.databaseService.retrieveDatabaseList() diff --git a/client/src/app/metamodel/store/effects/survey.effects.ts b/client/src/app/metamodel/store/effects/survey.effects.ts new file mode 100644 index 00000000..2525863f --- /dev/null +++ b/client/src/app/metamodel/store/effects/survey.effects.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { Actions, createEffect, ofType } from '@ngrx/effects'; +import { of } from 'rxjs'; +import { map, mergeMap, catchError } from 'rxjs/operators'; + +import * as surveyActions from '../actions/survey.actions'; +import { SurveyService } from '../services/survey.service'; + +@Injectable() +export class SurveyEffects { + + loadSurveys$ = createEffect(() => + this.actions$.pipe( + ofType(surveyActions.loadSurveyList), + mergeMap(() => this.surveyService.retrieveSurveyList() + .pipe( + map(surveys => surveyActions.loadSurveyListSuccess({ surveys })), + catchError(() => of(surveyActions.loadSurveyListFail())) + ) + ) + ) + ); + + constructor( + private actions$: Actions, + private surveyService: SurveyService + ) {} +} \ No newline at end of file diff --git a/client/src/app/metamodel/store/selectors/attribute.selector.ts b/client/src/app/metamodel/store/selectors/attribute.selector.ts new file mode 100644 index 00000000..8dcfa594 --- /dev/null +++ b/client/src/app/metamodel/store/selectors/attribute.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromAttribute from '../reducers/attribute.reducer'; + +export const selectAttributeState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.attribute +); + +export const selectAttributeIds = createSelector( + selectAttributeState, + fromAttribute.selectAttributeIds +); + +export const selectAttributeEntities = createSelector( + selectAttributeState, + fromAttribute.selectAttributeEntities +); + +export const selectAllAttributes = createSelector( + selectAttributeState, + fromAttribute.selectAllAttributes +); + +export const selectAttributeTotal = createSelector( + selectAttributeState, + fromAttribute.selectAttributeTotal +); diff --git a/client/src/app/metamodel/store/selectors/criteria-family.selector.ts b/client/src/app/metamodel/store/selectors/criteria-family.selector.ts new file mode 100644 index 00000000..f577802c --- /dev/null +++ b/client/src/app/metamodel/store/selectors/criteria-family.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromCriteriaFamily from '../reducers/criteria-family.reducer'; + +export const selectCriteriaFamilyState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.criteriaFamily +); + +export const selectCriteriaFamilyIds = createSelector( + selectCriteriaFamilyState, + fromCriteriaFamily.selectCriteriaFamilyIds +); + +export const selectCriteriaFamilyEntities = createSelector( + selectCriteriaFamilyState, + fromCriteriaFamily.selectCriteriaFamilyEntities +); + +export const selectAllCriteriaFamilys = createSelector( + selectCriteriaFamilyState, + fromCriteriaFamily.selectAllCriteriaFamilies +); + +export const selectCriteriaFamilyTotal = createSelector( + selectCriteriaFamilyState, + fromCriteriaFamily.selectCriteriaFamilyTotal +); diff --git a/client/src/app/metamodel/store/selectors/dataset-family.selector.ts b/client/src/app/metamodel/store/selectors/dataset-family.selector.ts new file mode 100644 index 00000000..91df1887 --- /dev/null +++ b/client/src/app/metamodel/store/selectors/dataset-family.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromDatasetFamily from '../reducers/dataset-family.reducer'; + +export const selectDatasetFamilyState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.datasetFamily +); + +export const selectDatasetFamilyIds = createSelector( + selectDatasetFamilyState, + fromDatasetFamily.selectDatasetFamilyIds +); + +export const selectDatasetFamilyEntities = createSelector( + selectDatasetFamilyState, + fromDatasetFamily.selectDatasetFamilyEntities +); + +export const selectAllDatasetFamilys = createSelector( + selectDatasetFamilyState, + fromDatasetFamily.selectAllDatasetFamilies +); + +export const selectDatasetFamilyTotal = createSelector( + selectDatasetFamilyState, + fromDatasetFamily.selectDatasetFamilyTotal +); diff --git a/client/src/app/metamodel/store/selectors/dataset.selector.ts b/client/src/app/metamodel/store/selectors/dataset.selector.ts new file mode 100644 index 00000000..a28d3e6e --- /dev/null +++ b/client/src/app/metamodel/store/selectors/dataset.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromDataset from '../reducers/dataset.reducer'; + +export const selectDatasetState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.dataset +); + +export const selectDatasetIds = createSelector( + selectDatasetState, + fromDataset.selectDatasetIds +); + +export const selectDatasetEntities = createSelector( + selectDatasetState, + fromDataset.selectDatasetEntities +); + +export const selectAllDatasets = createSelector( + selectDatasetState, + fromDataset.selectAllDatasets +); + +export const selectDatasetTotal = createSelector( + selectDatasetState, + fromDataset.selectDatasetTotal +); diff --git a/client/src/app/metamodel/store/selectors/group.selector.ts b/client/src/app/metamodel/store/selectors/group.selector.ts new file mode 100644 index 00000000..cbe71174 --- /dev/null +++ b/client/src/app/metamodel/store/selectors/group.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromGroup from '../reducers/group.reducer'; + +export const selectGroupState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.group +); + +export const selectGroupIds = createSelector( + selectGroupState, + fromGroup.selectGroupIds +); + +export const selectGroupEntities = createSelector( + selectGroupState, + fromGroup.selectGroupEntities +); + +export const selectAllGroups = createSelector( + selectGroupState, + fromGroup.selectAllGroups +); + +export const selectGroupTotal = createSelector( + selectGroupState, + fromGroup.selectGroupTotal +); diff --git a/client/src/app/metamodel/store/selectors/instance.selector.ts b/client/src/app/metamodel/store/selectors/instance.selector.ts new file mode 100644 index 00000000..d1e49f51 --- /dev/null +++ b/client/src/app/metamodel/store/selectors/instance.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromInstance from '../reducers/instance.reducer'; + +export const selectInstanceState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.instance +); + +export const selectInstanceIds = createSelector( + selectInstanceState, + fromInstance.selectInstanceIds +); + +export const selectInstanceEntities = createSelector( + selectInstanceState, + fromInstance.selectInstanceEntities +); + +export const selectAllInstances = createSelector( + selectInstanceState, + fromInstance.selectAllInstances +); + +export const selectInstanceTotal = createSelector( + selectInstanceState, + fromInstance.selectInstanceTotal +); diff --git a/client/src/app/metamodel/store/selectors/output-category.selector.ts b/client/src/app/metamodel/store/selectors/output-category.selector.ts new file mode 100644 index 00000000..b18e703e --- /dev/null +++ b/client/src/app/metamodel/store/selectors/output-category.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromOutputCategory from '../reducers/output-category.reducer'; + +export const selectOutputCategoryState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.outputCategory +); + +export const selectOutputCategoryIds = createSelector( + selectOutputCategoryState, + fromOutputCategory.selectOutputCategoryIds +); + +export const selectOutputCategoryEntities = createSelector( + selectOutputCategoryState, + fromOutputCategory.selectOutputCategoryEntities +); + +export const selectAllOutputCategorys = createSelector( + selectOutputCategoryState, + fromOutputCategory.selectAllOutputCategories +); + +export const selectOutputCategoryTotal = createSelector( + selectOutputCategoryState, + fromOutputCategory.selectOutputCategoryTotal +); diff --git a/client/src/app/metamodel/store/selectors/output-family.selector.ts b/client/src/app/metamodel/store/selectors/output-family.selector.ts new file mode 100644 index 00000000..1d8e621a --- /dev/null +++ b/client/src/app/metamodel/store/selectors/output-family.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromOutputFamily from '../reducers/output-family.reducer'; + +export const selectOutputFamilyState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.outputFamily +); + +export const selectOutputFamilyIds = createSelector( + selectOutputFamilyState, + fromOutputFamily.selectOutputFamilyIds +); + +export const selectOutputFamilyEntities = createSelector( + selectOutputFamilyState, + fromOutputFamily.selectOutputFamilyEntities +); + +export const selectAllOutputFamilys = createSelector( + selectOutputFamilyState, + fromOutputFamily.selectAllOutputFamilies +); + +export const selectOutputFamilyTotal = createSelector( + selectOutputFamilyState, + fromOutputFamily.selectOutputFamilyTotal +); diff --git a/client/src/app/metamodel/store/selectors/survey.selector.ts b/client/src/app/metamodel/store/selectors/survey.selector.ts new file mode 100644 index 00000000..1d8adabf --- /dev/null +++ b/client/src/app/metamodel/store/selectors/survey.selector.ts @@ -0,0 +1,29 @@ +import { createSelector } from '@ngrx/store'; + +import * as reducer from '../reducers'; +import * as fromSurvey from '../reducers/survey.reducer'; + +export const selectSurveyState = createSelector( + reducer.getMetamodelState, + (state: reducer.State) => state.survey +); + +export const selectSurveyIds = createSelector( + selectSurveyState, + fromSurvey.selectSurveyIds +); + +export const selectSurveyEntities = createSelector( + selectSurveyState, + fromSurvey.selectSurveyEntities +); + +export const selectAllSurveys = createSelector( + selectSurveyState, + fromSurvey.selectAllSurveys +); + +export const selectSurveyTotal = createSelector( + selectSurveyState, + fromSurvey.selectSurveyTotal +); -- GitLab