Expose places over GraphQL
All checks were successful
Build and deploy Backend / build (push) Successful in 1m1s

This commit is contained in:
Ruslan Bakiev
2026-05-08 15:54:15 +07:00
parent aeb40eb692
commit 7ca503667f
2 changed files with 43 additions and 0 deletions

37
src/graphql/places.ts Normal file
View File

@@ -0,0 +1,37 @@
import { prisma } from '../prisma.js';
function serializeVoiceExperience(
experience: Awaited<ReturnType<typeof prisma.voiceExperience.findMany>>[number],
) {
return {
...experience,
createdAt: experience.createdAt.toISOString(),
};
}
export async function listPlaces() {
const places = await prisma.place.findMany({
include: {
experiences: {
orderBy: { createdAt: 'desc' },
take: 10,
},
},
orderBy: { updatedAt: 'desc' },
});
return places.map((place) => ({
...place,
experiences: place.experiences.map(serializeVoiceExperience),
}));
}
export async function listVoiceExperiences() {
const experiences = await prisma.voiceExperience.findMany({
include: { place: true },
orderBy: { createdAt: 'desc' },
take: 100,
});
return experiences.map(serializeVoiceExperience);
}