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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | import { type SetRequired } from 'type-fest'; import { http } from '@amalia/core/http/client'; import { type DeletePlanAssignmentsRequest, type PlanAssignment, type UpdatePlanAssignmentRequest, type UpdatePlanAssignmentsRequest, type UpsertPlanAssignmentsDryRunResponse, type UpsertPlanAssignmentsRequest, type ValidatePlanAssignmentsCsvRequest, } from '@amalia/payout-definition/plans/types'; export class PlanAssignmentsApiClient { public static async getPlansAssignments<TRelations extends 'user'[] = []>({ planIds, relations = [] as unknown as TRelations, }: { planIds: string[]; relations?: TRelations; }): Promise<SetRequired<PlanAssignment, TRelations[number]>[]> { const { data } = await http.get<SetRequired<PlanAssignment, TRelations[number]>[]>('/plan-assignments', { params: { planId: planIds, relations: relations.join(',') || undefined, }, }); return data; } public static async getPlanAssignments<TRelations extends 'user'[] = []>({ planId, relations = [] as unknown as TRelations, }: { planId: string; relations?: TRelations; }) { return this.getPlansAssignments<TRelations>({ planIds: [planId], relations }); } public static async upsertPlanAssignmentsDryRun( csvRows: ValidatePlanAssignmentsCsvRequest['csvRows'], ): Promise<UpsertPlanAssignmentsDryRunResponse> { return ( await http.post<UpsertPlanAssignmentsDryRunResponse>('/plan-assignments/validate', { csvRows, } satisfies ValidatePlanAssignmentsCsvRequest) ).data; } public static async upsertPlanAssignments( planAssignments: UpsertPlanAssignmentsRequest['planAssignments'], ): Promise<PlanAssignment[]> { return ( await http.post<PlanAssignment[]>('/plan-assignments', { planAssignments } satisfies UpsertPlanAssignmentsRequest) ).data; } public static async updatePlanAssignments(planAssignments: UpdatePlanAssignmentRequest[]): Promise<PlanAssignment> { return ( await http.patch<PlanAssignment>('/plan-assignments', { planAssignments } satisfies UpdatePlanAssignmentsRequest) ).data; } public static async deletePlanAssignments(planAssignmentIds: PlanAssignment['id'][]): Promise<void> { await http.delete('/plan-assignments', { data: { planAssignmentIds } satisfies DeletePlanAssignmentsRequest }); } } |