diff --git a/packages/services/src/payment/service.ts b/packages/services/src/payment/service.ts index 341bd53..19293cb 100644 --- a/packages/services/src/payment/service.ts +++ b/packages/services/src/payment/service.ts @@ -1,11 +1,13 @@ -import { ok, err } from "neverthrow"; -import { CreatePaymentInput, CreatePaymentInputSchema } from "./types"; -import { paymentAlreadyProcessed } from "./errors"; -import { PaymentRepository } from "./repository"; -import { Payment, PaymentStatus, PrismaClient } from "@repo/db"; -import { createZodValidationError } from "@repo/exceptions"; +import { ok, err, Result } from 'neverthrow'; +import { CreatePaymentInput, CreatePaymentInputSchema } from './types'; +import { paymentAlreadyProcessed } from './errors'; +import { PaymentRepository } from './repository'; +import { Payment, PaymentStatus, PrismaClient } from '@repo/db'; +import { createZodValidationError, ZodValidationError } from '@repo/exceptions'; -const validateInput = (data: unknown) => { +const validateInput = ( + data: unknown +): Result => { const parseResult = CreatePaymentInputSchema.safeParse(data); return parseResult.success @@ -15,10 +17,10 @@ const validateInput = (data: unknown) => { export const createPayment = ( client: PrismaClient, - input: CreatePaymentInput, + input: CreatePaymentInput ) => - validateInput(input).map((validatedInput) => - PaymentRepository.create(client, validatedInput), + validateInput(input).asyncAndThen((validatedInput) => + PaymentRepository.create(client, validatedInput) ); export const getPaymentById = (client: PrismaClient, id: string) =>