eletrotupi / tcc/ commit / cd098b6

api: only allow authenticated users to change their avatars

Pedro Lucas Porcellis porcellis@eletrotupi.com · 5 months ago cd098b6c7983a66404abe69215b9ce1e88c79574 Browse files
Parents ad68b5c
Changed files
2
Additions
+9
Deletions
-3
api/src/controllers/users.ts
1 1
import { Request, Response, NextFunction } from 'express';
2 2
import {
3 3
  generateToken
4 4
} from '@app/services/auth.service';
5 5

14 14
  findUserById,
15 15
  findUserByEmail,
16 16
  updateUser
17 17
} from '@app/services/user.service';
18 18

19 +
import {
20 +
  AuthenticatedRequest
21 +
} from '@app/middleware/auth';
22 +

19 23
// XXX: I've regreted already
20 -
interface SingleFileRequest extends Request {
24 +
interface SingleFileRequest extends AuthenticatedRequest {
21 25
  file?: any;
22 26
}
23 27

24 28
export const UsersController = {
25 29
  create: async (req: Request, res: Response, next: NextFunction) => {
83 87
      }
84 88

85 89
      res.json({
86 90
        message: 'File uploaded successfully',
87 91
        fileLocation: req.file.location,
92 +
        key: req.file.key,
88 93
        filename: req.file.originalname,
89 94
        size: req.file.size
90 95
      });
91 96
    } catch (err) {
92 97
      next(err);
93 98
    }
94 99
  }
95 100
}
api/src/routes/users.ts
1 1
import { Router } from "express";
2 -
import { UsersController } from '@app/controllers/users'
2 +
import { UsersController } from '@app/controllers/users';
3 3
import multer from '@app/services/avatar';
4 +
import { requireAuth } from '@app/middleware/auth';
4 5

5 6
const router = Router();
6 7

7 8
router.post('/', UsersController.create);
8 9
router.put('/:id', UsersController.update);
9 -
router.post('/:id/avatar', multer.single('avatar'), UsersController.updateAvatar);
10 +
router.post('/:id/avatar', requireAuth, multer.single('avatar'), UsersController.updateAvatar);
10 11

11 12
export default router;