index.ts 1.45 KB
import { RuleChainPaginationItemType } from './model/type';
import { TBPaginationResult } from '/#/axios';
import { defHttp } from '/@/utils/http/axios';
import { RuleChainDetail, RuleChainType } from '/@/views/rule/designer/types/ruleNode';

enum Api {
  GET_RULE_CHAINS_DETAIL = '/ruleChain',
  SAVE = '/ruleChain/metadata',
  GET_RULE_CHAINES = '/ruleChains',
  GET_RULE_NODE_EVENTS = '/events/RULE_NODE',
}

export const getRuleChainDetail = (id: string) => {
  return defHttp.get<RuleChainDetail>(
    {
      url: `${Api.GET_RULE_CHAINS_DETAIL}/${id}`,
    },
    { joinPrefix: false }
  );
};

export const getRuleChainData = (id: string) => {
  return defHttp.get<RuleChainType>(
    {
      url: `/ruleChain/${id}/metadata`,
    },
    { joinPrefix: false }
  );
};

export const saveRuleChainData = (data: RuleChainType) => {
  return defHttp.post(
    {
      url: Api.SAVE,
      data,
    },
    { joinPrefix: false }
  );
};

export const getRuleChains = (params: Recordable) => {
  return defHttp.get<TBPaginationResult<RuleChainPaginationItemType>>(
    {
      url: Api.GET_RULE_CHAINES,
      params,
    },
    {
      joinPrefix: false,
    }
  );
};

export const getRuleNodeEventList = (
  ruleNodeId: string,
  params: Recordable,
  data: Recordable & Record<'eventType', string>
) => {
  return defHttp.post<TBPaginationResult>(
    {
      url: `${Api.GET_RULE_NODE_EVENTS}/${ruleNodeId}`,
      params,
      data,
    },
    { joinPrefix: false }
  );
};