eletrotupi / tcc/ api/src/controllers/moods.ts6b4f982cf194aa9934750aa0309b23eb2e6dccf4
999 B | 42 lines Raw
1
import { Request, Response, NextFunction } from 'express';
2
import { AuthenticatedRequest } from '@app/middleware/auth';
3
import {
4
  createMood,
5
  getMoodsByUserId
6
} from '@app/services/mood.service';
7

8
import {
9
  CreateMoodSchema
10
} from '@app/schemas'
11

12
export const MoodsController = {
13
  create: async (req: AuthenticatedRequest, res: Response, next: NextFunction) => {
14
    try {
15
      const parsed = CreateMoodSchema.safeParse(req.body.mood);
16

17
      if (!parsed.success) {
18
        return res.status(400).json({
19
          errors: parsed.error!.issues
20
        });
21
      }
22

23
      const mood = await createMood(req.userId!, parsed.data);
24

25
      return res.status(201).json({ mood });
26
    } catch (err) {
27
      next(err);
28
    }
29
  },
30

31
  index: async (req: AuthenticatedRequest, res: Response, next: NextFunction) => {
32
    try {
33
      const moods = await getMoodsByUserId(Number(req.params.id));
34

35
      return res.status(200).json({
36
        moods
37
      })
38
    } catch (err) {
39
      next(err);
40
    }
41
  },
42
};