diff --git a/ars/src/apis/auth/auth.service.ts b/ars/src/apis/auth/auth.service.ts index 44e3d73..e5dc61e 100644 --- a/ars/src/apis/auth/auth.service.ts +++ b/ars/src/apis/auth/auth.service.ts @@ -22,7 +22,7 @@ export class AuthService { { email: user.email, sub: user.id }, { secret: process.env.REFRESH_TOKEN_KEY, expiresIn: '8h' }, ); - res.setHeader('Access-Control-Allow-Origin', 'https://artipul.shop'); + res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000'); res.setHeader( 'Set-Cookie', `refreshToken=${refreshToken}; path=/; domain=.daseul.shop; SameSite=None; Secure;httpOnly;`, diff --git a/ars/src/apis/board/board.service.ts b/ars/src/apis/board/board.service.ts index 81640fb..bfa038f 100644 --- a/ars/src/apis/board/board.service.ts +++ b/ars/src/apis/board/board.service.ts @@ -98,10 +98,13 @@ export class BoardService { await queryRunner.startTransaction(); try { const board = await queryRunner.manager.findOne(Board, { id: boardId }); + const user = await queryRunner.manager.findOne(User, { + id: currentUser.id, + }); const result = await queryRunner.manager.save(Board, { ...board, ...rest, - user: currentUser, + user: user, thumbnail: image_urls[0], }); diff --git a/ars/src/apis/comment/comment.service.ts b/ars/src/apis/comment/comment.service.ts index 2b13b9c..347942e 100644 --- a/ars/src/apis/comment/comment.service.ts +++ b/ars/src/apis/comment/comment.service.ts @@ -25,10 +25,13 @@ export class CommentService { await queryRunner.startTransaction(); try { const board = await queryRunner.manager.findOne(Board, { id: boardId }); + const user = await queryRunner.manager.findOne(User, { + id: currentUser.id, + }); const comment = await queryRunner.manager.save(Comment, { content, board, - user: currentUser, + user: user, }); await queryRunner.commitTransaction(); return comment; diff --git a/ars/src/apis/likeBoard/likeBoard.service.ts b/ars/src/apis/likeBoard/likeBoard.service.ts index 1c802cb..d56c72f 100644 --- a/ars/src/apis/likeBoard/likeBoard.service.ts +++ b/ars/src/apis/likeBoard/likeBoard.service.ts @@ -1,36 +1,66 @@ import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { Repository } from 'typeorm'; +import { Connection, getRepository, Repository } from 'typeorm'; +import { Board } from '../board/entities/board.entity'; import { LikeBoard } from '../board/entities/likeBoard.entity'; +import { User } from '../user/entities/user.entity'; @Injectable() export class LikeBoardService { constructor( @InjectRepository(LikeBoard) private readonly likeBoardRepository: Repository, + + private readonly connection: Connection, ) {} async find(userId) { - const arts = await this.likeBoardRepository.find({ userId: userId }); - return arts.map((ele) => ele.board); + const queryRunner = this.connection.createQueryRunner(); + await queryRunner.connect(); + await queryRunner.startTransaction(); + try { + const boards = await queryRunner.manager.find(LikeBoard, { + where: { userId }, + relations: ['board'], + }); + return boards.map((ele) => ele.board); + } catch (error) { + await queryRunner.rollbackTransaction(); + throw error + 'find board!!!'; + } finally { + await queryRunner.manager.release(); + } } async like(boardId, userId) { + const queryRunner = this.connection.createQueryRunner(); + await queryRunner.connect(); + await queryRunner.startTransaction(); try { - const prevLike = await this.likeBoardRepository.findOne({ - userId: userId, - }); - if (prevLike.board !== boardId) { - await this.likeBoardRepository.save({ + const board = await queryRunner.manager.findOne(Board, { id: boardId }); + const prevLike = await queryRunner.manager.findOne(LikeBoard, { + where: { userId: userId, board: boardId, + }, + }); + if (!prevLike) { + await queryRunner.manager.save(LikeBoard, { + userId: userId, + board: board, }); + await queryRunner.commitTransaction(); + return true; } else { - await this.likeBoardRepository.delete({ userId: userId }); + await queryRunner.manager.delete(LikeBoard, { board: boardId }); + await queryRunner.commitTransaction(); + return false; } - return true; } catch (error) { + await queryRunner.rollbackTransaction(); throw error + 'like board!!!'; + } finally { + await queryRunner.manager.release(); } }