Files
Epicnabbo-Catalogus-Updated…/src/features/housekeeping/domains/economy/services/mutations-runtime.ts
T

43 lines
1.1 KiB
TypeScript

import "server-only";
import { executeEconomyCatalogMutation } from "./mutation-runtime-catalog";
import { executeEconomyDatabaseMutation } from "./mutation-runtime-commerce";
import { executeEconomyRewardsMutation } from "./mutation-runtime-rewards";
import type {
EconomyMutationContext,
EconomyMutationOperation,
EconomyMutationSnapshot,
} from "./mutations";
import { EconomyMutationFailure } from "./mutations";
export async function executeEconomyMutationOperation(
operation: EconomyMutationOperation,
input: unknown,
context: EconomyMutationContext,
transaction?: unknown,
): Promise<EconomyMutationSnapshot> {
const databaseResult = await executeEconomyDatabaseMutation(
operation,
input,
context,
transaction,
);
if (databaseResult) return databaseResult;
const catalogResult = await executeEconomyCatalogMutation(
operation,
input,
context,
);
if (catalogResult) return catalogResult;
const rewardsResult = await executeEconomyRewardsMutation(
operation,
input,
context,
);
if (rewardsResult) return rewardsResult;
throw new EconomyMutationFailure(
"VALIDATION",
"errors.housekeeping.validation",
);
}