All files / libs/payout-definition/state/src/lib/rules rule-templates.api-client.ts

0% Statements 0/37
0% Branches 0/1
0% Functions 0/1
0% Lines 0/37

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38                                                                           
import { http } from '@amalia/core/http/client';
import {
  type Plan,
  type Rule,
  type RuleTemplatePerformanceSharePlan,
  type RuleTemplatePerformanceSharePlanResponse,
  type RuleTemplateSingleRateCommission,
  type RuleTemplateSingleRateCommissionResponse,
} from '@amalia/payout-definition/plans/types';

export class RuleTemplatesApiClient {
  public static async applyPerformanceSharePlanTemplateToRule(
    planId: Plan['id'],
    ruleId: Rule['id'],
    ruleTemplatePerformanceSharePlanDTO: RuleTemplatePerformanceSharePlan,
  ): Promise<RuleTemplatePerformanceSharePlanResponse> {
    const response = await http.post<RuleTemplatePerformanceSharePlanResponse>(
      `/plans/${encodeURIComponent(planId)}/rules/${encodeURIComponent(ruleId)}/templates/performance-share-plan`,
      ruleTemplatePerformanceSharePlanDTO,
    );

    return response.data;
  }

  public static async applySingleRateCommissionTemplateToRule(
    planId: Plan['id'],
    ruleId: Rule['id'],
    ruleTemplateSingleRateCommissionDTO: RuleTemplateSingleRateCommission,
  ): Promise<RuleTemplateSingleRateCommissionResponse> {
    const response = await http.post<RuleTemplateSingleRateCommissionResponse>(
      `/plans/${encodeURIComponent(planId)}/rules/${encodeURIComponent(ruleId)}/templates/single-rate-commission`,
      ruleTemplateSingleRateCommissionDTO,
    );

    return response.data;
  }
}