Files
gridpilot.gg/apps/website/lib/mutations/onboarding/GenerateAvatarsMutation.ts
Marc Mintel 6c07abe5e7
Some checks failed
Contract Testing / contract-snapshot (pull_request) Has been cancelled
Contract Testing / contract-tests (pull_request) Has been cancelled
view data fixes
2026-01-25 00:12:30 +01:00

21 lines
1.1 KiB
TypeScript

import { Mutation } from '@/lib/contracts/mutations/Mutation';
import { Result } from '@/lib/contracts/Result';
import { mapToMutationError } from '@/lib/contracts/mutations/MutationError';
import { OnboardingService } from '@/lib/services/onboarding/OnboardingService';
import { RequestAvatarGenerationInputDTO } from '@/lib/types/generated/RequestAvatarGenerationInputDTO';
import { GenerateAvatarsViewDataBuilder } from '@/lib/builders/view-data/GenerateAvatarsViewDataBuilder';
import { GenerateAvatarsViewData } from '@/lib/view-data/GenerateAvatarsViewData';
export class GenerateAvatarsMutation implements Mutation<RequestAvatarGenerationInputDTO, GenerateAvatarsViewData, string> {
async execute(input: RequestAvatarGenerationInputDTO): Promise<Result<GenerateAvatarsViewData, string>> {
const service = new OnboardingService();
const result = await service.generateAvatars(input);
if (result.isErr()) {
return Result.err(mapToMutationError(result.getError()));
}
const output = GenerateAvatarsViewDataBuilder.build(result.unwrap());
return Result.ok(output);
}
}