38 lines
863 B
TypeScript
38 lines
863 B
TypeScript
import { t } from '../../server';
|
|
import { CalculateInputSchema, CalculateOutputSchema } from './types';
|
|
import { validate } from './validation';
|
|
import initializeApollo from '@/apollo/client';
|
|
import { QueryClient } from '@tanstack/react-query';
|
|
|
|
const calculateRouter = t.router({
|
|
calculate: t.procedure
|
|
.input(CalculateInputSchema)
|
|
.output(CalculateOutputSchema)
|
|
.query(async ({ input }) => {
|
|
const apolloClient = initializeApollo();
|
|
const queryClient = new QueryClient();
|
|
|
|
const { success, error } = await validate({
|
|
context: {
|
|
apolloClient,
|
|
queryClient,
|
|
},
|
|
input,
|
|
});
|
|
|
|
if (!success) {
|
|
return {
|
|
error,
|
|
success,
|
|
};
|
|
}
|
|
|
|
return {
|
|
error: undefined,
|
|
success,
|
|
};
|
|
}),
|
|
});
|
|
|
|
export default calculateRouter;
|