Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

코드 정리 #517

Merged
merged 4 commits into from
Jun 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 2 additions & 8 deletions src/controllers/User.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,7 @@ import {
LoginResponse,
} from '@response/user';

import {
UserAuthDTO,
UserInputDTO,
LoginInfoDTO,
SurveyDTO,
UserDTO,
} from '@dto/index';
import { UserAuthDTO, LoginInfoDTO, SurveyDTO, UserDTO } from '@dto/index';

const LOG_TAG: string = '[User/Controller]';

Expand Down Expand Up @@ -99,7 +93,7 @@ const registerUser: RequestHandler = (
return;
}
User.createUser(userRegisterRequest.toUserInputDTO())
.then((result: UserInputDTO) => {
.then((result) => {
return UserRegisterResponse.createByJson(result);
})
.then((response: UserRegisterResponse) => {
Expand Down
4 changes: 3 additions & 1 deletion src/dao/ReviewDao.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { NotMatchedError, DuplicatedEntryError } from '@errors';
import { ACCESS_PUBLIC, ACCESS_PRIVATE } from '@utils/constants';

import {
sequelize,
Expand All @@ -11,6 +10,9 @@ import {
} from '@sequelize';
import { Op, Order, QueryTypes } from 'sequelize';

const ACCESS_PUBLIC: number = 1;
const ACCESS_PRIVATE: number = 0;

const SQL_READ_ALL_OF_PERFUME = `
SELECT
r.id as reviewIdx,
Expand Down
66 changes: 0 additions & 66 deletions src/data/dto/NoteDictDTO.ts

This file was deleted.

20 changes: 0 additions & 20 deletions src/data/dto/TokenGroupDTO.ts

This file was deleted.

2 changes: 0 additions & 2 deletions src/data/dto/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ export * from './IngredientCategoryDTO';
export * from './IngredientDTO';
export * from './ListAndCountDTO';
export * from './LoginInfoDTO';
export * from './NoteDictDTO';
export * from './NoteDTO';
export * from './PagingDTO';
export * from './PerfumeDTO';
Expand All @@ -22,7 +21,6 @@ export * from './ReportUserInquirePerfumeDTO';
export * from './SeriesDTO';
export * from './SeriesFilterDTO';
export * from './SurveyDTO';
export * from './TokenGroupDTO';
export * from './TokenPayloadDTO';
export * from './UserAuthDTO';
export * from './UserDTO';
Expand Down
59 changes: 48 additions & 11 deletions src/service/NoteService.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,20 @@
import NoteDao from '@src/dao/NoteDao';
import { NoteDictDTO } from '@src/data/dto';
import {
PERFUME_NOTE_TYPE_NORMAL,
PERFUME_NOTE_TYPE_SINGLE,
} from '@src/utils/constants';
import { NoteDTO } from '@src/data/dto';

interface NoteDict {
top: string;
middle: string;
base: string;
single: string;
}

const NOTE_TYPE_TOP: number = 1;
const NOTE_TYPE_MIDDLE: number = 2;
const NOTE_TYPE_BASE: number = 3;
const NOTE_TYPE_SINGLE: number = 4;

const PERFUME_NOTE_TYPE_SINGLE: number = 1;
const PERFUME_NOTE_TYPE_NORMAL: number = 0;

export class NoteService {
noteDao: NoteDao;
Expand All @@ -21,16 +32,42 @@ export class NoteService {
};
}> {
const noteList: any[] = await this.noteDao.readByPerfumeIdx(perfumeIdx);
const noteDictDTO: {
top: string;
middle: string;
base: string;
single: string;
} = NoteDictDTO.createByNoteList(noteList);
const noteDictDTO = this.createByNoteList(noteList);
const noteType: number =
noteDictDTO.single.length > 0
? PERFUME_NOTE_TYPE_SINGLE
: PERFUME_NOTE_TYPE_NORMAL;
return { noteType, noteDictDTO };
}

private createByNoteList(noteList: NoteDTO[]): NoteDict {
const topList: string[] = [];
const middleList: string[] = [];
const baseList: string[] = [];
const singleList: string[] = [];

noteList.forEach((it: NoteDTO) => {
switch (it.type) {
case NOTE_TYPE_TOP:
topList.push(it.ingredientName);
break;
case NOTE_TYPE_MIDDLE:
middleList.push(it.ingredientName);
break;
case NOTE_TYPE_BASE:
baseList.push(it.ingredientName);
break;
case NOTE_TYPE_SINGLE:
singleList.push(it.ingredientName);
break;
}
});

return {
top: topList.join(', '),
middle: middleList.join(', '),
base: baseList.join(', '),
single: singleList.join(', '),
};
}
}
3 changes: 2 additions & 1 deletion src/service/SeriesService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,13 @@ import {
SeriesFilterDTO,
IngredientCategoryDTO,
} from '@dto/index';
import { THRESHOLD_CATEGORY } from '@src/utils/constants';
import { Op } from 'sequelize';
import { ETC } from '@src/utils/strings';

const LOG_TAG: string = '[Series/Service]';

const THRESHOLD_CATEGORY: number = 10;

class SeriesService {
seriesDao: SeriesDao;
ingredientDao: IngredientDao;
Expand Down
8 changes: 3 additions & 5 deletions src/service/UserService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import JwtController from '@libs/JwtController';
import {
TokenPayloadDTO,
LoginInfoDTO,
TokenGroupDTO,
UserAuthDTO,
UserInputDTO,
UserDTO,
Expand Down Expand Up @@ -52,10 +51,9 @@ class UserService {
* 유저 회원 가입
*
* @param {UserInputDTO} UserInputDTO
* @returns {Promise<TokenGroupDTO>}
* @throws {FailedToCreateError} if failed to create user
**/
async createUser(userInputDTO: UserInputDTO): Promise<TokenGroupDTO> {
async createUser(userInputDTO: UserInputDTO) {
logger.debug(`${LOG_TAG} createUser(userInputDTO = ${userInputDTO})`);
return this.userDao
.create(userInputDTO)
Expand All @@ -68,11 +66,11 @@ class UserService {

const { userIdx } = user;
const { token, refreshToken } = this.jwt.publish(payload);
return TokenGroupDTO.createByJSON({
return {
userIdx,
token,
refreshToken,
});
};
})
.catch((error: Error) => {
if (error instanceof DuplicatedEntryError) {
Expand Down
34 changes: 0 additions & 34 deletions src/utils/constants.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
import {
NONE,
EAU_DE_COLOGNE,
EAU_DE_TOILETTE,
EAU_DE_PERFUME,
PERFUME,
ETC,
TOP,
MIDDLE,
BASE,
SINGLE,
} from '@utils/strings';

const GENDER_MAN: number = 1;
Expand All @@ -31,29 +26,14 @@ const ABUNDANCE_RATE_STR_DICT: { [key: string]: string } = new Proxy<{
}
);

const NOTE_TYPE_TOP: number = 1;
const NOTE_TYPE_MIDDLE: number = 2;
const NOTE_TYPE_BASE: number = 3;
const NOTE_TYPE_SINGLE: number = 4;
const NOTE_TYPE_LIST: string[] = [NONE, TOP, MIDDLE, BASE, SINGLE];
const PERFUME_NOTE_TYPE_SINGLE: number = 1;
const PERFUME_NOTE_TYPE_NORMAL: number = 0;
const MIN_SCORE: number = 0;
const MAX_SCORE: number = 10;
const DEFAULT_PAGE_SIZE: number = 100;
const THRESHOLD_CATEGORY: number = 10;

const DEFAULT_RECOMMEND_REQUEST_SIZE: number = 7;
const DEFAULT_NEW_PERFUME_REQUEST_SIZE: number = 50;
const DEFAULT_SIMILAR_PERFUMES_REQUEST_SIZE: number = 20;
const DEFAULT_RECENT_ADDED_PERFUME_REQUEST_SIZE: number = 7;
const DEFAULT_RECOMMEND_COMMON_REQUEST_SIZE: number = 15;
const DEFAULT_BRAND_REQUEST_SIZE: number = 1000;
const DEFAULT_INGREDIENT_REQUEST_SIZE: number = 2000;
const DEFAULT_OP_CODE: number = 0;

const ACCESS_PUBLIC: number = 1;
const ACCESS_PRIVATE: number = 0;

export {
GENDER_MAN,
Expand All @@ -62,25 +42,11 @@ export {
GRADE_MANAGER,
GRADE_SYSTEM_ADMIN,
ABUNDANCE_RATE_STR_DICT,
NOTE_TYPE_TOP,
NOTE_TYPE_MIDDLE,
NOTE_TYPE_BASE,
NOTE_TYPE_SINGLE,
NOTE_TYPE_LIST,
PERFUME_NOTE_TYPE_SINGLE,
PERFUME_NOTE_TYPE_NORMAL,
MIN_SCORE,
MAX_SCORE,
DEFAULT_PAGE_SIZE,
THRESHOLD_CATEGORY,
DEFAULT_RECOMMEND_REQUEST_SIZE,
DEFAULT_NEW_PERFUME_REQUEST_SIZE,
DEFAULT_RECENT_ADDED_PERFUME_REQUEST_SIZE,
DEFAULT_SIMILAR_PERFUMES_REQUEST_SIZE,
DEFAULT_RECOMMEND_COMMON_REQUEST_SIZE,
DEFAULT_BRAND_REQUEST_SIZE,
DEFAULT_INGREDIENT_REQUEST_SIZE,
ACCESS_PUBLIC,
ACCESS_PRIVATE,
DEFAULT_OP_CODE,
};
16 changes: 5 additions & 11 deletions tests/test_integral/perfume.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,9 @@ import {
import {
DEFAULT_RECOMMEND_REQUEST_SIZE,
DEFAULT_RECENT_ADDED_PERFUME_REQUEST_SIZE,
DEFAULT_RECOMMEND_COMMON_REQUEST_SIZE,
DEFAULT_OP_CODE,
} from '@utils/constants';

import { ResponseDTO, SimpleResponseDTO } from '@response/common';
import { OpCode, ResponseDTO, SimpleResponseDTO } from '@response/common';
import {
PerfumeResponse,
PerfumeDetailResponse,
Expand Down Expand Up @@ -180,12 +178,8 @@ describe('# Perfume Integral Test', () => {
expect(responseDTO.message).to.be.eq(
MSG_GET_RECOMMEND_PERFUME_BY_AGE_AND_GENDER
);
expect(responseDTO.data.count).to.be.gte(
DEFAULT_RECOMMEND_COMMON_REQUEST_SIZE
);
expect(responseDTO.data.rows.length).to.be.eq(
DEFAULT_RECOMMEND_COMMON_REQUEST_SIZE
);
expect(responseDTO.data.count).to.be.gte(15);
expect(responseDTO.data.rows.length).to.be.eq(15);
done();
})
.catch((err: Error) => done(err));
Expand Down Expand Up @@ -356,7 +350,7 @@ describe('# Perfume Integral Test', () => {
expect(responseDTO.message).to.be.eq(
MSG_POST_PERFUME_RECOMMEND_SIMMILAR_SUCCESS
);
expect(responseDTO.opcode).to.be.eq(DEFAULT_OP_CODE);
expect(responseDTO.opcode).to.be.eq(OpCode.NONE);
});

it('read success case', async () => {
Expand All @@ -373,7 +367,7 @@ describe('# Perfume Integral Test', () => {
MSG_GET_RECOMMEND_SIMILAR_PERFUMES
);
expect(responseDTO.data.count).to.be.eq(3);
expect(responseDTO.opcode).to.be.eq(DEFAULT_OP_CODE);
expect(responseDTO.opcode).to.be.eq(OpCode.NONE);
});
});
});
Expand Down
Loading