Skip to content
Snippets Groups Projects
Commit f914b98c authored by Florent Poittevin's avatar Florent Poittevin
Browse files

Add default value for state

parent d654afd1
No related branches found
No related tags found
1 merge request!25Add default value for state
import {HttpEventType} from "@angular/common/http";
import {ApiService} from "@app/core/http/api.service";
import {NotificationService} from "@app/core/services/notification.service";
import {DepositAction, depositActionNameSpace} from "@app/deposit/deposit.action";
import {DepositDataFileModel} from "@app/deposit/models/deposit-data-file.model";
import {UploadFileStatusModel} from "@app/deposit/models/upload-file-status.model";
import {DepositsModel} from "@app/generated-api";
import {CrudTwoTiersAction} from "@app/shared/crud-two-tiers.action";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {ApiActionEnum} from "@app/shared/enums/api-action.enum";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {PreIngestResourceApiEnum, ResourceApiEnum, SubResourceApiEnum} from "@app/shared/enums/api.enum";
......@@ -14,11 +16,8 @@ import {StateEnum} from "@app/shared/enums/state.enum";
import {LanguageAction} from "@app/shared/language.action";
import {LicenseAction} from "@app/shared/license.action";
import {CollectionTypedModel} from "@app/shared/models/collection-typed.model";
import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
import {PreservationPolicyAction} from "@app/shared/preservation-policy.action";
import {ApiService} from "@app/core/http/api.service";
import {SubmissionPolicyAction} from "@app/shared/submission-policy.action";
import {NotificationService} from "@app/core/services/notification.service";
import {CrudHelperUtil} from "@app/shared/utils/crud-helper.util";
import {Action, State, StateContext, Store} from "@ngxs/store";
import {Observable} from "rxjs";
......@@ -27,7 +26,6 @@ import {tap} from "rxjs/internal/operators/tap";
import {map} from "rxjs/operators";
export interface DepositStateModel extends CrudStateModel<DepositsModel> {
resourceIsLoading: boolean;
listDataFile: DepositDataFileModel[];
isLoadingDataFile: boolean;
uploadStatus: UploadFileStatusModel;
......@@ -36,12 +34,7 @@ export interface DepositStateModel extends CrudStateModel<DepositsModel> {
@State<DepositStateModel>({
name: StateEnum.deposit,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
resourceIsLoading: false,
...defaultCrudStateInitValue,
listDataFile: [],
isLoadingDataFile: false,
uploadStatus: null,
......
......@@ -3,5 +3,6 @@ import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
export interface ResourceStateModel extends BaseStateModel {
total: number;
queryParameters: QueryParametersModel;
}
......@@ -9,6 +9,7 @@ import {ResourceApiEnum} from "@app/shared/enums/api.enum";
import {urlSeparator} from "@app/shared/enums/routes.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
import {CollectionTypedModel} from "@app/shared/models/collection-typed.model";
import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
import {SubResourceUpdateModel} from "@app/shared/models/sub-resource-update.model";
import {CrudHelperUtil} from "@app/shared/utils/crud-helper.util";
import {CrudTwoTiersActionHelper} from "@app/shared/utils/crud-two-tiers-action.helper";
......@@ -20,10 +21,15 @@ import {catchError} from "rxjs/internal/operators/catchError";
import {tap} from "rxjs/internal/operators/tap";
export interface CrudTwoTiersStateModel<T> extends ResourceStateModel {
total: number;
selected: T[];
}
export const defaultCrudTwoTiersStateInitValue: CrudTwoTiersStateModel<any> = {
total: 0,
isLoading: false,
selected: [],
queryParameters: new QueryParametersModel(),
};
export abstract class CrudTwoTiersState<T> {
protected readonly state: StateEnum;
protected readonly crudTwoTiersNameSpace: CrudTwoTiersNameSpace;
......
......@@ -8,6 +8,7 @@ import {ResourceApiEnum} from "@app/shared/enums/api.enum";
import {ModelAttributeEnum} from "@app/shared/enums/model-attribute.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
import {CollectionTypedModel} from "@app/shared/models/collection-typed.model";
import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
import {CrudActionHelper} from "@app/shared/utils/crud-action.helper";
import {CrudHelperUtil} from "@app/shared/utils/crud-helper.util";
import {CrudRouteUtil} from "@app/shared/utils/crud-route.util";
......@@ -20,11 +21,18 @@ import {catchError} from "rxjs/internal/operators/catchError";
import {tap} from "rxjs/operators";
export interface CrudStateModel<T> extends ResourceStateModel {
total: number;
list: T[];
current: T;
}
export const defaultCrudStateInitValue: CrudStateModel<any> = {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
};
export abstract class CrudState<T> {
protected readonly state: StateEnum;
protected readonly crudNameSpace: CrudNameSpace;
......
import {LanguagesModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
......@@ -16,11 +16,7 @@ export interface LanguageStateModel extends CrudStateModel<LanguagesModel> {
@State<LanguageStateModel>({
name: StateEnum.language,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
...defaultCrudStateInitValue,
},
})
export class LanguageState extends CrudState<LanguagesModel> {
......
import {LicensesModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
......@@ -17,11 +17,7 @@ export interface LicenseStateModel extends CrudStateModel<LicensesModel> {
@State<LicenseStateModel>({
name: StateEnum.license,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
...defaultCrudStateInitValue,
},
})
export class LicenseState extends CrudState<LicensesModel> {
......
......@@ -2,7 +2,7 @@ import {AppStateModel} from "@app/app.state";
import {ApiService} from "@app/core/http/api.service";
import {NotificationService} from "@app/core/services/notification.service";
import {OrganizationalUnitsModel, SubmissionPoliciesModel} from "@app/generated-api";
import {CrudTwoTiersState, CrudTwoTiersStateModel} from "@app/shared/crud-two-tiers.state";
import {CrudTwoTiersState, CrudTwoTiersStateModel, defaultCrudTwoTiersStateInitValue} from "@app/shared/crud-two-tiers.state";
import {CrudTwoTiersNameSpace} from "@app/shared/crud.namespace";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {AccessResourceApiEnum, AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
......@@ -23,10 +23,7 @@ export interface OrganizationalUnitSubmissionPolicyStateModel extends CrudTwoTie
@State<OrganizationalUnitSubmissionPolicyStateModel>({
name: StateEnum.organizationalUnitSubResourceSubmissionPolicy,
defaults: {
total: 0,
isLoading: false,
selected: [],
queryParameters: new QueryParametersModel(),
...defaultCrudTwoTiersStateInitValue,
},
})
export class OrganizationalUnitSubmissionPolicyState extends CrudTwoTiersState<OrganizationalUnitsModel> {
......
......@@ -5,7 +5,7 @@ import {NotificationService} from "@app/core/services/notification.service";
import {DepositStateModel} from "@app/deposit/deposit.state";
import {OrganizationalUnitsModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {OverrideCrudAction} from "@app/shared/decorators/crud.decorator";
import {AccessResourceApiEnum, AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
import {ModelAttributeEnum} from "@app/shared/enums/model-attribute.enum";
......@@ -33,11 +33,7 @@ export interface OrganizationalUnitStateModel extends CrudStateModel<Organizatio
@State<OrganizationalUnitStateModel>({
name: StateEnum.organizationalUnit,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
...defaultCrudStateInitValue,
},
children: [
OrganizationalUnitSubmissionPolicyState,
......
import {PreservationPoliciesModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
......@@ -16,11 +16,7 @@ export interface PreservationPolicyStateModel extends CrudStateModel<Preservatio
@State<PreservationPolicyStateModel>({
name: StateEnum.preservationPolicy,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
...defaultCrudStateInitValue,
},
})
export class PreservationPolicyState extends CrudState<PreservationPoliciesModel> {
......
import {SubmissionPoliciesModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} from "@app/shared/crud.state";
import {CrudState, CrudStateModel, defaultCrudStateInitValue} from "@app/shared/crud.state";
import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum";
import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum";
import {StateEnum} from "@app/shared/enums/state.enum";
......@@ -16,11 +16,7 @@ export interface SubmissionPolicyStateModel extends CrudStateModel<SubmissionPol
@State<SubmissionPolicyStateModel>({
name: StateEnum.submissionPolicy,
defaults: {
total: 0,
isLoading: false,
list: [],
current: null,
queryParameters: new QueryParametersModel(),
...defaultCrudStateInitValue,
},
})
export class SubmissionPolicyState extends CrudState<SubmissionPoliciesModel> {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment