π 곡λΆνλ μ§μ§μνμΉ΄λ μ²μμ΄μ§?
[Nest JS λ‘ CRUD κ²μν λ§λ€κΈ°] (12) 컀μ€ν νμ΄νλ₯Ό μ΄μ©ν μ ν¨μ± μ²΄ν¬ λ³Έλ¬Έ
[Nest JS λ‘ CRUD κ²μν λ§λ€κΈ°] (12) 컀μ€ν νμ΄νλ₯Ό μ΄μ©ν μ ν¨μ± 체ν¬
μ§μ§μνμΉ΄ 2023. 6. 2. 01:32<λ³Έ λΈλ‘κ·Έλ John Ahn μ μ νλΈλ₯Ό μ°Έκ³ ν΄μ 곡λΆνλ©° μμ±νμμ΅λλ€ :-)>
=> λ°λΌνλ©΄μ λ°°μ°λ NestJS
𧸠컀μ€ν νμ΄νλ₯Ό μ΄μ©ν μ ν¨μ± 체ν¬
: Pipe Transform μ΄λ μΈν°νμ΄μ€λ₯Ό μλ‘κ² λ§λ€ 컀μ€ν νμ΄νμ ꡬνν΄μ€μΌ ν¨
: Pipe Transform μΈν°νμ΄μ€λ λͺ¨λ νμ΄νμμ ꡬνν΄μ€μΌ νλ μΈν°νμ΄μ€
: λͺ¨λ νμ΄νλ transform() λ©μλ νμ
: NestJS κ° μΈμλ₯Ό μ²λ¦¬νκΈ° μν΄ μ¬μ©λ¨
π transform() λ©μλ
: λ κ°μ νλΌλ―Έν°λ₯Ό κ°μ§
: 첫 λ²μ§Έ νλΌλ―Έν°λ μ²λ¦¬κ° λ μΈμμ κ° (value)
: λ λ²μ§Έ νλΌλ―Έν°λ μΈμμ λν λ©ν λ°μ΄ν°λ₯Ό ν¬ν¨ν κ°μ²΄
-> transform() λ©μλμμ return λ κ°μ Route νΈλ€λ¬λ‘ μ ν΄μ§ (μμΈκ° μκΈ°λ©΄ ν΄λΌμ΄μΈνΈλ‘ μ ν΄μ§)
𧸠컀μ€ν νμ΄νλ‘ μν κΈ°λ₯ ꡬννκΈ°
: μνλ PUBLIC, PRIVATE λ‘λ§ μ¬ μ μμ
: μ΄μΈ κ°μ΄ μ€λ©΄ μλ¬ λ°ννκΈ°
import { BadRequestException, PipeTransform } from "@nestjs/common";
import { BoardStatus } from "../board.model";
export class BoardStatusValidationPipe implements PipeTransform {
readonly StatusOptions = [
BoardStatus.PRIVATE,
BoardStatus.PUBLIC
]
transform(value: any) {
value = value.toUpperCase();
if (!this.isStatusValid(value)) {
throw new BadRequestException(`${value} isn't in the status options`);
}
return value;
}
private isStatusValid(status: any) {
const index = this.StatusOptions.indexOf(status);
// μΈλ±μ€μ μλ μ«μλ₯Ό λ£μΌλ©΄ -1 κ° λμ΄ -> μλ status νμΈ!
return index !== -1;
}
}