eletrotupi / tcc/ api/src/services/export/data.gatherer.ts8480619e654d675a3b0327e5df6b8b94dab2c32b
730 B | 30 lines Raw
1
import { Mood, MoodComponent, User } from "@prisma/client";
2

3
import { prisma } from "@app/lib/prisma";
4
import { findUserById } from "@app/services/user.service";
5

6
export type ExportData = {
7
  user: User;
8
  moods: Mood[];
9
  moodComponents: MoodComponent[];
10
};
11

12
export async function gatherExportData(userId: number): Promise<ExportData> {
13
  const user = await findUserById(userId);
14

15
  if (!user) {
16
    throw new Error(`Usuário ${userId} não encontrado para exportação`);
17
  }
18

19
  const moods = await prisma.mood.findMany({
20
    where: { userId },
21
    include: { moodComponents: true },
22
    orderBy: { moment: "asc" },
23
  });
24

25
  return {
26
    user,
27
    moods,
28
    moodComponents: moods.flatMap((mood) => mood.moodComponents),
29
  };
30
}