내일배움캠프 스파르타 코딩클럽
< routers. bookmarks.router.js >
import express from 'express';
import { BookmarkController } from '../controllers/bookmarks.controller.js';
import { requireAccessToken } from '../middlewares/require-access-token.middleware.js';
const bookmarkRouter = express.Router();
const bookmarkController = new BookmarkController();
// 펫시터 즐겨찾기 등록
bookmarkRouter.post(
'/:petsitterId/follow',
requireAccessToken,
bookmarkController.followSitter
);
export { bookmarkRouter };
< controllers. bookmarks.controller.js >
import { HTTP_STATUS } from '../constants/http-status.constant.js';
import { BookmarkService } from '../services/bookmarks.service.js';
export class BookmarkController {
bookmarkService = new BookmarkService();
followSitter = async (req, res, next) => {
const userId = req.user.id;
const petsitterId = req.params.petsitterId;
try {
const data = await this.bookmarkService.followSitter(userId, petsitterId);
return res.status(HTTP_STATUS.CREATED).json({
status: HTTP_STATUS.CREATED,
message: '북마크에 등록되었습니다',
data,
});
} catch (err) {
next(err);
}
};
}
< services. bookmarks.service.js >
import { BookmarkRepository } from '../repositories/bookmarks.repository.js';
export class BookmarkService {
bookmarkRepository = new BookmarkRepository();
// 펫시터 북마크 하기
followSitter = async (userId, petsitterId) => {
const user = await this.bookmarkRepository.findUserById(userId);
const petsitter = await this.bookmarkRepository.findSitterById(petsitterId);
const bookmarking = await this.bookmarkRepository.createBookmark(
userId,
petsitterId
);
if (!user || !petsitter) {
throw new Error('정보가 없습니다');
}
return bookmarking;
};
2;
}
< repositories. bookmarks.repository.js >
import { prisma } from '../utils/prisma.utils.js';
export class BookmarkRepository {
findSitterById = async (id) => {
const data = await prisma.petsitter.findUnique({
where: { id: +id },
});
return data;
};
findUserById = async (id) => {
console.log(id);
const temp = await prisma.user.findMany();
console.log(temp);
const data = await prisma.user.findUnique({
where: { id },
});
return data;
};
createBookmark = async (userId, petsitterId) => {
console.log(userId, petsitterId);
const data = await prisma.bookmark.create({
data: {
userId,
petsitterId: +petsitterId,
},
});
return data;
};
}
'TIL' 카테고리의 다른 글
Node.js 백오피스 팀 프로젝트 (8) (0) | 2024.07.02 |
---|---|
Node.js 백오피스 팀 프로젝트 (7) (0) | 2024.06.28 |
Node.js 백오피스 팀 프로젝트 (5) (0) | 2024.06.26 |
Node.js 백오피스 팀 프로젝트 (4) (0) | 2024.06.24 |
Node.js 백오피스 팀 프로젝트 (3) (0) | 2024.06.24 |