diff --git a/src/boards/controllers/Boards.controller.ts b/src/boards/controllers/Boards.controller.ts index ce6e96e..a1e26db 100644 --- a/src/boards/controllers/Boards.controller.ts +++ b/src/boards/controllers/Boards.controller.ts @@ -30,7 +30,7 @@ export class BoardsController { @Post() async create( - @Headers('accessToken') accessToken: string, + @Headers('access_token') accessToken: string, @Body() createBoardDto: CreateBoardDto, ): Promise { const userId = await this.tokenService.decodeToken(accessToken); @@ -76,7 +76,7 @@ export class BoardsController { @Delete(':boardId') async deleteBoard( - @Headers('accessToken') accessToken: string, + @Headers('access_token') accessToken: string, @Param('boardId') boardId: number, ) { const userId = await this.tokenService.decodeToken(accessToken); diff --git a/src/friends/controllers/friends.controller.ts b/src/friends/controllers/friends.controller.ts index af386d8..f44f2f1 100644 --- a/src/friends/controllers/friends.controller.ts +++ b/src/friends/controllers/friends.controller.ts @@ -1,7 +1,6 @@ -import { Body, Controller, Headers, Post } from "@nestjs/common"; -import { FriendsService } from "../services/friends.service"; -import { TokenService } from "src/auth/services/token.service"; -import { User } from "src/users/entities/user.entity"; +import { Controller, Headers, Post } from '@nestjs/common'; +import { FriendsService } from '../services/friends.service'; +import { TokenService } from 'src/auth/services/token.service'; @Controller('friends') export class FriendsController { @@ -11,7 +10,10 @@ export class FriendsController { ) {} @Post() - async friendRequest(@Headers('access_token') accessToken: string, @Headers('friend_id') friendId:User) { + async friendRequest( + @Headers('access_token') accessToken: string, + @Headers('friend_id') friendId: number, + ) { const userId = await this.tokenService.decodeToken(accessToken); return await this.friendsService.friendRequest(userId, friendId); } diff --git a/src/friends/entities/friends.entity.ts b/src/friends/entities/friends.entity.ts index 0d8fd83..97cd3a9 100644 --- a/src/friends/entities/friends.entity.ts +++ b/src/friends/entities/friends.entity.ts @@ -18,13 +18,23 @@ export class Friend { @PrimaryGeneratedColumn() id: number; - @ManyToOne(() => User) + @Column({ name: 'requester_id' }) + requesterId: number; + + @Column({ name: 'respondent_id' }) + respondentId: number; + + @ManyToOne(() => User, (userId: User) => userId.requester, { + onDelete: 'CASCADE', + }) @JoinColumn({ name: 'requester_id' }) - requesterId: User; + requester: User; - @ManyToOne(() => User) + @ManyToOne(() => User, (userId: User) => userId.respondent, { + onDelete: 'CASCADE', + }) @JoinColumn({ name: 'respondent_id' }) - respondentId: User; + respondent: User; @Column({ type: 'enum', enum: Status, default: Status.PENDING }) status!: Status; diff --git a/src/friends/repositories/friends.repository.ts b/src/friends/repositories/friends.repository.ts index 1fcbe47..8805abc 100644 --- a/src/friends/repositories/friends.repository.ts +++ b/src/friends/repositories/friends.repository.ts @@ -1,15 +1,12 @@ -import { Injectable } from "@nestjs/common"; -import { EntityManager } from "typeorm"; -import { Friend, Status } from "../entities/friends.entity"; -import { User } from "src/users/entities/user.entity"; +import { Injectable } from '@nestjs/common'; +import { EntityManager } from 'typeorm'; +import { Friend, Status } from '../entities/friends.entity'; @Injectable() export class FriendsRepository { - constructor( - private readonly entityManager: EntityManager, - ) {} + constructor(private readonly entityManager: EntityManager) {} - async friendRequest(userId: User, friendId: User): Promise { + async friendRequest(userId: number, friendId: number): Promise { const friend = new Friend(); friend.requesterId = userId; friend.respondentId = friendId; @@ -17,4 +14,4 @@ export class FriendsRepository { return await this.entityManager.save(friend); } -} \ No newline at end of file +} diff --git a/src/friends/services/friends.service.ts b/src/friends/services/friends.service.ts index 896dae0..9807c48 100644 --- a/src/friends/services/friends.service.ts +++ b/src/friends/services/friends.service.ts @@ -1,14 +1,11 @@ -import { Injectable } from "@nestjs/common"; -import { FriendsRepository } from "../repositories/friends.repository"; -import { User } from "src/users/entities/user.entity"; +import { Injectable } from '@nestjs/common'; +import { FriendsRepository } from '../repositories/friends.repository'; @Injectable() export class FriendsService { - constructor( - private readonly friendsRepository: FriendsRepository, - ) {} + constructor(private readonly friendsRepository: FriendsRepository) {} - async friendRequest(userId: User, friendId: User) { + async friendRequest(userId: number, friendId: number) { return await this.friendsRepository.friendRequest(userId, friendId); } -} \ No newline at end of file +} diff --git a/src/users/entities/user.entity.ts b/src/users/entities/user.entity.ts index 280843a..424fc12 100644 --- a/src/users/entities/user.entity.ts +++ b/src/users/entities/user.entity.ts @@ -9,6 +9,7 @@ import { import { UserImage } from './user-image.entity'; import { Token } from 'src/auth/entities/token.entity'; import { Board } from 'src/boards/entities/board.entity'; +import { Friend } from 'src/friends/entities/friends.entity'; @Entity({ name: 'user', @@ -43,4 +44,16 @@ export class User { onDelete: 'CASCADE', }) token: Token; + + @OneToMany(() => Friend, (friend) => friend.requesterId, { + onDelete: 'CASCADE', + }) + @JoinColumn({ name: 'requester_id' }) + requester: Friend; + + @OneToMany(() => Friend, (friend) => friend.respondentId, { + onDelete: 'CASCADE', + }) + @JoinColumn({ name: 'respondent_id' }) + respondent: Friend; }