feat: convert to nextjs
This commit is contained in:
54
utils/consumer/store.ts
Normal file
54
utils/consumer/store.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import 'dotenv/config';
|
||||
import { Consumer, consumerSchema } from './types';
|
||||
import { Tool } from './tool';
|
||||
import { BaseTool, makeRequest } from '../anthropicClient';
|
||||
import { generatePrompt } from './prompt';
|
||||
import { generateConsumerSeed } from '@utils/generateConsumerSeed';
|
||||
import prisma from '../../prisma/prisma';
|
||||
|
||||
export async function generate() {
|
||||
const { letters, birthday, zipCode } = generateConsumerSeed();
|
||||
|
||||
const newConsumer = await prisma.consumer.create({
|
||||
data: {
|
||||
letters,
|
||||
birthday: birthday.toDate(),
|
||||
zipCode
|
||||
}
|
||||
});
|
||||
|
||||
console.info(`New consumer being generated with id ${newConsumer.id}`);
|
||||
|
||||
const prompt = generatePrompt(letters, birthday, zipCode);
|
||||
|
||||
try {
|
||||
const result = (await makeRequest(prompt, Tool as BaseTool)) as Consumer;
|
||||
|
||||
const validConsumer = consumerSchema.safeParse(result);
|
||||
|
||||
if (validConsumer.error) {
|
||||
throw Error(`Invalid consumer generated: ${validConsumer.error.message}`);
|
||||
}
|
||||
|
||||
console.info('Generated consumer by Anthropic', validConsumer.data);
|
||||
|
||||
await prisma.consumer.update({
|
||||
where: {
|
||||
id: newConsumer.id
|
||||
},
|
||||
data: {
|
||||
value: validConsumer.data
|
||||
}
|
||||
});
|
||||
|
||||
console.info(`Consumer with id ${newConsumer.id} stored in database.`);
|
||||
|
||||
return {
|
||||
id: newConsumer.id,
|
||||
consumer: validConsumer.data
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Error generating purchases:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user