Skip to content
Snippets Groups Projects
submission-policy.state.ts 1.77 KiB
Newer Older
import {SubmissionPoliciesModel} from "@app/generated-api";
import {CrudNameSpace} from "@app/shared/crud.namespace";
import {CrudState, CrudStateModel} 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";
import {languageActionNameSpace} from "@app/shared/language.action";
import {QueryParametersModel} from "@app/shared/models/query-parameters.model";
import {ApiService} from "@app/core/http/api.service";
import {NotificationService} from "@app/core/notification.service";
import {SubmissionPolicyAction, submissionPolicyActionNameSpace} from "@app/shared/submission-policy.action";
import {Action, State, StateContext, Store} from "@ngxs/store";
import {Observable} from "rxjs";

export interface SubmissionPolicyStateModel extends CrudStateModel<SubmissionPoliciesModel> {
}

@State<SubmissionPolicyStateModel>({
  name: StateEnum.submissionPolicy,
  defaults: {
    total: 0,
    isLoading: false,
    list: [],
    current: null,
    queryParameters: new QueryParametersModel(),
  },
})
export class SubmissionPolicyState extends CrudState<SubmissionPoliciesModel> {
  constructor(protected apiService: ApiService,
              protected notificationService: NotificationService) {
    super(apiService, store, notificationService);
  }

  defineUrlResource(): ResourceApiEnum {
    return AdminResourceApiEnum.submissionPolicies;
  }

  defineState(): StateEnum {
    return StateEnum.submissionPolicy;
  }

  defineCrudNameSpace(): CrudNameSpace {
    return submissionPolicyActionNameSpace;
  defineSubResource(): ApiResourceNameEnum[] {
    return [];