Skip to content

Commit 7f3c0f5

Browse files
authored
Merge pull request #176 from team-gogo/develop
v2025.4.23.2
2 parents 564371c + f9607f4 commit 7f3c0f5

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/main/kotlin/gogo/gogostage/domain/image/application/ImageValidator.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,21 @@ import org.springframework.web.multipart.MultipartFile
88
class ImageValidator {
99

1010
fun validImage(image: MultipartFile) {
11-
val list = listOf("jpg", "png", "gif")
12-
val splitFile = image.originalFilename.toString().split(".")
11+
val allowedExtensions = listOf("jpg", "png", "gif")
12+
val maxFileSize = 10 * 1024 * 1024
1313

14-
if(splitFile.size != 2)
15-
throw StageException("Image Extension Invalid", 400)
14+
val fileName = image.originalFilename ?: throw StageException("No file name", 400)
1615

17-
val extension = splitFile[1].lowercase()
16+
val extension = fileName.substringAfterLast('.', missingDelimiterValue = "").lowercase()
1817

19-
if(list.none { it == extension })
18+
if (extension.isBlank() || extension !in allowedExtensions) {
2019
throw StageException("Image Extension Invalid", 400)
20+
}
21+
22+
if (image.size >= maxFileSize) {
23+
throw StageException("Image Size Exceeds 10MB", 400)
24+
}
2125
}
2226

27+
2328
}

src/main/kotlin/gogo/gogostage/domain/team/root/application/TeamProcessor.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ import gogo.gogostage.domain.team.participant.persistence.TeamParticipantReposit
77
import gogo.gogostage.domain.team.root.application.dto.TeamApplyDto
88
import gogo.gogostage.domain.team.root.persistence.Team
99
import gogo.gogostage.domain.team.root.persistence.TeamRepository
10+
import gogo.gogostage.global.cache.CacheConstant
11+
import gogo.gogostage.global.cache.RedisCacheService
1012
import org.springframework.stereotype.Component
1113

1214
@Component
1315
class TeamProcessor(
1416
private val teamRepository: TeamRepository,
1517
private val teamParticipantRepository: TeamParticipantRepository,
16-
private val gameRepository: GameRepository
18+
private val gameRepository: GameRepository,
19+
private val redisCacheService: RedisCacheService
1720
) {
1821

1922
fun apply(game: Game, dto: TeamApplyDto) {
@@ -27,6 +30,8 @@ class TeamProcessor(
2730
TeamParticipant.of(team, it.studentId, it.positionX, it.positionY)
2831
}
2932
teamParticipantRepository.saveAll(participants)
33+
34+
redisCacheService.deleteFromCache("${CacheConstant.GAME_CACHE_VALE}::${game.stage.id}")
3035
}
3136

3237
}

0 commit comments

Comments
 (0)