cloudfoundry/stratos

View on GitHub
src/frontend/packages/cloud-foundry/src/entity-action-builders/domin.action-builder.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { OrchestratedActionBuilders } from '../../../store/src/entity-catalog/action-orchestrator/action-orchestrator';
import { FetchAllDomains, FetchDomain } from '../actions/domains.actions';
import { GetAllOrganizationDomains } from '../actions/organization.actions';
import { CFBasePipelineRequestActionMeta } from '../cf-entity-generator';

export interface DomainActionBuilders extends OrchestratedActionBuilders {
  get: (
    guid,
    endpointGuid
  ) => FetchDomain;
  getMultiple: (
    endpointGuid,
    paginationKey,
    { flatten }: CFBasePipelineRequestActionMeta
  ) => FetchAllDomains;
  getOrganizationDomains: (
    orgGuid: string,
    endpointGuid: string,
    paginationKey?: string,
    meta?: CFBasePipelineRequestActionMeta
  ) => GetAllOrganizationDomains;
}

export const domainActionBuilders: DomainActionBuilders = {
  get: (
    guid,
    endpointGuid
  ) => new FetchDomain(guid, endpointGuid),
  // FIXME: Remove pagination key from get all requests. This might need some investigation regarding places where we use different keys
  // for lists of same type - #STRAT-149
  getMultiple: (
    endpointGuid,
    paginationKey,
    { flatten }: CFBasePipelineRequestActionMeta = {}
  ) => new FetchAllDomains(endpointGuid, paginationKey, flatten),
  getOrganizationDomains: (
    orgGuid: string,
    endpointGuid: string,
    paginationKey: string = null,
    meta: CFBasePipelineRequestActionMeta = {
      includeRelations: [],
      populateMissing: true
    }
  ) => new GetAllOrganizationDomains(orgGuid, endpointGuid, paginationKey, meta.includeRelations, meta.populateMissing)
};