Skip to content

Commit

Permalink
Merge pull request #196 from TiimMate/feature/89
Browse files Browse the repository at this point in the history
[FEAT] 리뷰에 따른 실력 및 매너 레벨 부여와 업데이트 기능 도입
  • Loading branch information
doeunyy authored Feb 19, 2024
2 parents 8108992 + 7754a1d commit f73b8fe
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 3 deletions.
16 changes: 16 additions & 0 deletions src/daos/team-review.dao.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,19 @@ export const insertTeamReview = async (userId: number, reviewedTeamId: number, b
...body,
});
};

export const getTotalSkillScoreByTeamId = async (teamId: number) => {
return await db.TeamReview.sum("skillScore", {
where: {
reviewedTeamId: teamId,
},
});
};

export const getTotalMannerScoreByTeamId = async (teamId: number) => {
return await db.TeamReview.sum("mannerScore", {
where: {
reviewedTeamId: teamId,
},
});
};
14 changes: 14 additions & 0 deletions src/daos/team.dao.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,3 +220,17 @@ export const getLeaderId = async (teamId: number) => {
});
return team.leaderId;
};

export const updateLevelByTeamId = async (teamId: number, skillLevel: number, mannerLevel: number) => {
await db.Team.update(
{
skillLevel,
mannerLevel,
},
{
where: {
id: teamId,
},
},
);
};
16 changes: 16 additions & 0 deletions src/daos/user-review.dao.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,19 @@ export const insertUserReview = async (userId: number, body: CreateUserReviewBod
...body,
});
};

export const getTotalSkillScoreByUserId = async (userId: number) => {
return await db.TeamReview.sum("skillScore", {
where: {
revieweeId: userId,
},
});
};

export const getTotalMannerScoreByUserId = async (userId: number) => {
return await db.TeamReview.sum("mannerScore", {
where: {
revieweeId: userId,
},
});
};
14 changes: 14 additions & 0 deletions src/daos/user.dao.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,17 @@ export const setCommonProfile = async (userId: number, commonProfile: CommonProf
},
);
};

export const updateLevelByUserId = async (userId: number, skillLevel: number, mannerLevel: number) => {
await db.Team.update(
{
skillLevel,
mannerLevel,
},
{
where: {
id: userId,
},
},
);
};
29 changes: 26 additions & 3 deletions src/services/reviews.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,22 @@ import { BaseError } from "../config/error";
import { status } from "../config/response.status";
import { CreateTeamReviewBody } from "../schemas/team-review.schema";
import { getGame } from "../daos/game.dao";
import { findLeaderId, getLeaderId } from "../daos/team.dao";
import { findLeaderId, getLeaderId, updateLevelByTeamId } from "../daos/team.dao";
import { getGuestingByAcceptedUserId } from "../daos/guest.dao";
import { getExistingTeamReview, insertTeamReview } from "../daos/team-review.dao";
import {
getExistingTeamReview,
getTotalMannerScoreByTeamId,
getTotalSkillScoreByTeamId,
insertTeamReview,
} from "../daos/team-review.dao";
import { CreateUserReviewBody } from "../schemas/user-review.schema";
import { getExistingUserReview, insertUserReview } from "../daos/user-review.dao";
import {
getExistingUserReview,
getTotalMannerScoreByUserId,
getTotalSkillScoreByUserId,
insertUserReview,
} from "../daos/user-review.dao";
import { updateLevelByUserId } from "../daos/user.dao";

export const createTeamReview = async (userId: number, body: CreateTeamReviewBody) => {
const { teamMatchId, guestMatchId } = body;
Expand All @@ -27,6 +38,12 @@ export const createTeamReview = async (userId: number, body: CreateTeamReviewBod
}

await insertTeamReview(userId, result.reviewedTeamId, body);

//update level
const totalSkillScore = await getTotalSkillScoreByTeamId(result.reviewedTeamId);
const totalMannerScore = await getTotalMannerScoreByTeamId(result.reviewedTeamId);
await updateLevelByTeamId(result.reviewedTeamId, totalSkillScore / 10, totalMannerScore / 10);

return;
};

Expand Down Expand Up @@ -61,6 +78,12 @@ export const createUserReview = async (userId: number, body: CreateUserReviewBod
}

await insertUserReview(userId, body);

//update level
const totalSkillScore = await getTotalSkillScoreByUserId(result.revieweeId);
const totalMannerScore = await getTotalMannerScoreByUserId(result.revieweeId);
await updateLevelByUserId(result.revieweeId, totalSkillScore / 10, totalMannerScore / 10);

return;
};

Expand Down

0 comments on commit f73b8fe

Please sign in to comment.