Skip to content

Commit cbcc5b4

Browse files
Merge pull request #131 from DevKor-github/feature/banner-link
Feature/banner link
2 parents ee66830 + 14d891d commit cbcc5b4

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

src/entities/banner.entity.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,7 @@ export class BannerEntity extends CommonEntity {
1111

1212
@Column('varchar', { nullable: false })
1313
title: string;
14+
15+
@Column('varchar', { nullable: true })
16+
link: string;
1417
}

src/home/banner/banner.controller.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export class BannerController {
3939
@UploadedFile() image: Express.Multer.File,
4040
@Body() body: CreateBannerRequestDto,
4141
): Promise<bannerDto> {
42-
return await this.bannerService.createBannerImage(image, body.title);
42+
return await this.bannerService.createBannerImage(image, body);
4343
}
4444

4545
@UseGuards(JwtAuthGuard, RolesGuard)

src/home/banner/banner.service.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { BannerEntity } from 'src/entities/banner.entity';
55
import { Repository } from 'typeorm';
66
import { bannerDto } from './dto/banner.dto';
77
import { throwKukeyException } from 'src/utils/exception.util';
8+
import { CreateBannerRequestDto } from 'src/home/banner/dto/create-banner-request.dto';
89

910
@Injectable()
1011
export class BannerService {
@@ -23,13 +24,14 @@ export class BannerService {
2324
id: banner.id,
2425
imageUrl: banner.imageUrl,
2526
title: banner.title,
27+
link: banner.link ?? null,
2628
};
2729
});
2830
}
2931

3032
async createBannerImage(
3133
image: Express.Multer.File,
32-
title: string,
34+
dto: CreateBannerRequestDto,
3335
): Promise<bannerDto> {
3436
if (!image) {
3537
throwKukeyException('BANNER_IMAGE_REQUIRED');
@@ -41,13 +43,15 @@ export class BannerService {
4143
const imageUrl = this.fileService.makeUrlByFileDir(fileDir);
4244
const banner = this.bannerRepository.create({
4345
imageUrl,
44-
title,
46+
title: dto.title,
47+
link: dto.link ?? null,
4548
});
4649
const savedBanner = await this.bannerRepository.save(banner);
4750
return {
4851
id: savedBanner.id,
4952
imageUrl: savedBanner.imageUrl,
5053
title: savedBanner.title,
54+
link: savedBanner.link ?? null,
5155
};
5256
}
5357

src/home/banner/dto/banner.dto.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ export class bannerDto {
99

1010
@ApiProperty({ description: '배너 제목' })
1111
title: string;
12+
13+
@ApiProperty({ description: '배너 링크', nullable: true })
14+
link: string | null;
1215
}

src/home/banner/dto/create-banner-request.dto.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { ApiProperty } from '@nestjs/swagger';
2-
import { IsNotEmpty } from 'class-validator';
1+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
2+
import { IsNotEmpty, IsOptional } from 'class-validator';
33

44
export class CreateBannerRequestDto {
55
@ApiProperty({
@@ -12,4 +12,8 @@ export class CreateBannerRequestDto {
1212
@ApiProperty({ description: '배너 제목' })
1313
@IsNotEmpty()
1414
title: string;
15+
16+
@ApiPropertyOptional({ description: '링크' })
17+
@IsOptional()
18+
link?: string;
1519
}

0 commit comments

Comments
 (0)