From 7bb14cf064ef527d1b94b35068a4b40197104986 Mon Sep 17 00:00:00 2001 From: Lee Jaeseong Date: Mon, 9 Aug 2021 11:26:53 +0900 Subject: [PATCH 01/12] #8 feat: add dependencies repository, and service --- .../attendanceapimono/application/AttendanceService.kt | 6 ++++++ .../domain/attendance/AttendanceRepository.kt | 6 ++++++ .../attendanceapimono/domain/event/EventRepository.kt | 8 ++++++++ 3 files changed, 20 insertions(+) create mode 100644 src/main/kotlin/com/example/attendanceapimono/application/AttendanceService.kt create mode 100644 src/main/kotlin/com/example/attendanceapimono/domain/attendance/AttendanceRepository.kt create mode 100644 src/main/kotlin/com/example/attendanceapimono/domain/event/EventRepository.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/application/AttendanceService.kt b/src/main/kotlin/com/example/attendanceapimono/application/AttendanceService.kt new file mode 100644 index 0000000..41065ef --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/application/AttendanceService.kt @@ -0,0 +1,6 @@ +package com.example.attendanceapimono.application + +import org.springframework.stereotype.Service + +@Service +class AttendanceService \ No newline at end of file diff --git a/src/main/kotlin/com/example/attendanceapimono/domain/attendance/AttendanceRepository.kt b/src/main/kotlin/com/example/attendanceapimono/domain/attendance/AttendanceRepository.kt new file mode 100644 index 0000000..23315f4 --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/domain/attendance/AttendanceRepository.kt @@ -0,0 +1,6 @@ +package com.example.attendanceapimono.domain.attendance + +import org.springframework.stereotype.Repository + +@Repository +interface AttendanceRepository \ No newline at end of file diff --git a/src/main/kotlin/com/example/attendanceapimono/domain/event/EventRepository.kt b/src/main/kotlin/com/example/attendanceapimono/domain/event/EventRepository.kt new file mode 100644 index 0000000..487e32a --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/domain/event/EventRepository.kt @@ -0,0 +1,8 @@ +package com.example.attendanceapimono.domain.event + +import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.stereotype.Repository +import java.util.* + +@Repository +interface EventRepository : JpaRepository \ No newline at end of file From 4de085ad84922c8c2953f49a86b3b854b7e44567 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Tue, 10 Aug 2021 08:18:12 +0900 Subject: [PATCH 02/12] feat: create EventService.kt --- .../com/example/attendanceapimono/application/EventService.kt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/kotlin/com/example/attendanceapimono/application/EventService.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt new file mode 100644 index 0000000..7807b8a --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt @@ -0,0 +1,4 @@ +package com.example.attendanceapimono.application + +class EventService { +} \ No newline at end of file From 0aa7266c2f2d1cb235ec5b654fc0a16953d590cc Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:00:13 +0900 Subject: [PATCH 03/12] feat: create EventController --- .../attendanceapimono/adapter/present/EventController.kt | 8 ++++++++ .../attendanceapimono/adapter/present/api/EventAPI.kt | 7 +++++++ 2 files changed, 15 insertions(+) create mode 100644 src/main/kotlin/com/example/attendanceapimono/adapter/present/EventController.kt create mode 100644 src/main/kotlin/com/example/attendanceapimono/adapter/present/api/EventAPI.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/adapter/present/EventController.kt b/src/main/kotlin/com/example/attendanceapimono/adapter/present/EventController.kt new file mode 100644 index 0000000..5447b35 --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/adapter/present/EventController.kt @@ -0,0 +1,8 @@ +package com.example.attendanceapimono.adapter.present + +import com.example.attendanceapimono.adapter.present.api.EventAPI +import org.springframework.web.bind.annotation.RestController + +@RestController +class EventController: EventAPI { +} \ No newline at end of file diff --git a/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/EventAPI.kt b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/EventAPI.kt new file mode 100644 index 0000000..e6ec6a2 --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/EventAPI.kt @@ -0,0 +1,7 @@ +package com.example.attendanceapimono.adapter.present.api + +import io.swagger.v3.oas.annotations.tags.Tag + +@Tag(name = "Event 관련 API") +interface EventAPI { +} \ No newline at end of file From c9832f99deef65a6b9e29373b3694e06bd59a0e3 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:01:16 +0900 Subject: [PATCH 04/12] feat: attatch @Service annotation to EventService --- .../com/example/attendanceapimono/application/EventService.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt index 7807b8a..7f772d1 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt @@ -1,4 +1,7 @@ package com.example.attendanceapimono.application +import org.springframework.stereotype.Service + +@Service class EventService { } \ No newline at end of file From 3914fab3f77f4c3488289b408591c28f782ad248 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:06:51 +0900 Subject: [PATCH 05/12] feat: init EventService.createEvent method --- .../com/example/attendanceapimono/application/EventService.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt index 7f772d1..b9235ae 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/EventService.kt @@ -4,4 +4,7 @@ import org.springframework.stereotype.Service @Service class EventService { + fun createEvent() { + + } } \ No newline at end of file From 33d516d91583c6fb72d700e14610e62eb8f38b1f Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:08:18 +0900 Subject: [PATCH 06/12] feat: create dto.CreateEventRequest.kt --- .../application/dto/event/CreateEventRequest.kt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt new file mode 100644 index 0000000..01a1a11 --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt @@ -0,0 +1,4 @@ +package com.example.attendanceapimono.application.dto.event + +class CreateEventRequest { +} \ No newline at end of file From 834a5a040492a3b123812b6ab074c7903f8e9b81 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:17:40 +0900 Subject: [PATCH 07/12] feat: edit CreateEventRequest.Exmaple --- .../dto/event/CreateEventRequest.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt index 01a1a11..c3eb3be 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt @@ -1,4 +1,23 @@ package com.example.attendanceapimono.application.dto.event +import io.swagger.v3.oas.annotations.media.Schema + +@Schema( + title = "이벤트 등록", + description = "새로운 이벤트를 등록합니다.", + example = CreateEventRequest.Example +) class CreateEventRequest { + companion object { + const val Example = """ + { + "generationId": 6, + "title": "오리엔테이션", + "description": "함께 모여 앞으로의 방향에 대해 이야기 나눠 보아요.", + "expectedAt": "2021-08-21T14:00:00.000", + "lateDiffMinute": 10, + "absentDiffMinute": 60, + } + """ + } } \ No newline at end of file From 2d2e2ee2ac848841272f050959f78d792b78b5fb Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 02:57:16 +0900 Subject: [PATCH 08/12] feat: finish dto.event.CreateEventRequest --- .../dto/event/CreateEventRequest.kt | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt index c3eb3be..5da44b3 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt @@ -1,17 +1,41 @@ package com.example.attendanceapimono.application.dto.event import io.swagger.v3.oas.annotations.media.Schema +import org.hibernate.validator.constraints.Length +import org.springframework.format.annotation.DateTimeFormat +import java.time.LocalDateTime @Schema( title = "이벤트 등록", description = "새로운 이벤트를 등록합니다.", example = CreateEventRequest.Example ) -class CreateEventRequest { +class CreateEventRequest( + @Schema(description = "DDD 기수 입니다.") + val generationID: Int, + + @Schema(description = "이벤트 명") + @field:Length(min = 5, max = 255) + val title: String, + + @Schema(description = "이벤트 설명") + @field:Length(max = 500) + val description: String, + + @Schema(description = "예상 시작 일") + @field:DateTimeFormat + val expectedAt: String, + + @Schema(description = "지각 기준 시간 (분)") + val lateDiffMinute: Int, + + @Schema(description = "결석 기준 시간 (분)") + val absentDiffMinute: Int +) { companion object { const val Example = """ { - "generationId": 6, + "generationID": 6, "title": "오리엔테이션", "description": "함께 모여 앞으로의 방향에 대해 이야기 나눠 보아요.", "expectedAt": "2021-08-21T14:00:00.000", From c4fbc1bb40652c045cbc3cde64d861a78ac11675 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 03:02:34 +0900 Subject: [PATCH 09/12] fix: edit Event entity --- .../com/example/attendanceapimono/domain/event/Event.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/example/attendanceapimono/domain/event/Event.kt b/src/main/kotlin/com/example/attendanceapimono/domain/event/Event.kt index a0cbd93..ffb1f07 100644 --- a/src/main/kotlin/com/example/attendanceapimono/domain/event/Event.kt +++ b/src/main/kotlin/com/example/attendanceapimono/domain/event/Event.kt @@ -21,10 +21,10 @@ class Event( var title: String, @Column(length = 500, nullable = false) - var description: String, + var description: String = "", @Column(nullable = false) - var isDone: Boolean, + var isDone: Boolean = false, @Column(nullable = false) val expectedAt: LocalDateTime, @@ -36,7 +36,7 @@ class Event( var absentDiffMinutes: Int, @Column(nullable = false) - val startAt: LocalDateTime, + var startAt: LocalDateTime, @Column(nullable = false) val createdAt: LocalDateTime, From 02eaae756189ad3727f940f1ce27b95f2f7b5fc2 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 03:11:16 +0900 Subject: [PATCH 10/12] fix: edit schema title, description in dto.event.CreateEventRequest.kt --- .../application/dto/event/CreateEventRequest.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt index 5da44b3..bb40aaa 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt @@ -6,8 +6,8 @@ import org.springframework.format.annotation.DateTimeFormat import java.time.LocalDateTime @Schema( - title = "이벤트 등록", - description = "새로운 이벤트를 등록합니다.", + title = "이벤트 등록 요청", + description = "새로운 이벤트를 등록할 때 필요한 Body에 대한 DTO입니다.", example = CreateEventRequest.Example ) class CreateEventRequest( From 79da12f9df872cf26272bb4043c325322bf2ccd9 Mon Sep 17 00:00:00 2001 From: RbertKo Date: Thu, 12 Aug 2021 03:19:15 +0900 Subject: [PATCH 11/12] feat: finish dto.event.CreateEventResponse.kt --- .../dto/event/CreateEventRequest.kt | 2 +- .../dto/event/CreateEventResponse.kt | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventResponse.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt index bb40aaa..6e4f2ba 100644 --- a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventRequest.kt @@ -40,7 +40,7 @@ class CreateEventRequest( "description": "함께 모여 앞으로의 방향에 대해 이야기 나눠 보아요.", "expectedAt": "2021-08-21T14:00:00.000", "lateDiffMinute": 10, - "absentDiffMinute": 60, + "absentDiffMinute": 60 } """ } diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventResponse.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventResponse.kt new file mode 100644 index 0000000..e97f2ef --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/event/CreateEventResponse.kt @@ -0,0 +1,32 @@ +package com.example.attendanceapimono.application.dto.event + +import com.example.attendanceapimono.domain.event.Event +import io.swagger.v3.oas.annotations.media.Schema + +@Schema( + title = "이벤트 등록 후 반환", + description = "이벤트를 등록한 후, 반환해주는 Response에 대한 DTO 입니다.", + example = CreateEventResponse.Example, +) +data class CreateEventResponse ( + @Schema(description = "생성된 event") + val event: Event, +) { + companion object { + const val Example = """ + { + "id": "123e4567-e89b-12d3-a456-426614174000", + "generationID": 6, + "title": "오리엔테이션", + "description": "함께 모여 앞으로의 방향에 대해 이야기 나눠 보아요.", + "isDone": false, + "expectedAt": "2021-08-21T14:00:00.000", + "lateDiffMinute": 10, + "absentDiffMinute": 60, + "startAt": null, + "createdAt": "2021-08-12T22:13:47.245", + "updatedAt": "2021-08-12T22:13:47.245" + } + """ + } +} \ No newline at end of file From bf339127e4cd22dd718ffef164be1bfbdd1b9aff Mon Sep 17 00:00:00 2001 From: Lee Jaeseong Date: Fri, 13 Aug 2021 00:43:33 +0900 Subject: [PATCH 12/12] =?UTF-8?q?fix:=20=EC=8A=A4=EC=9B=A8=EA=B1=B0=20?= =?UTF-8?q?=EB=AC=B8=EC=84=9C=20=ED=94=BD=EC=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../attendanceapimono/adapter/present/api/JWTTokenV1.kt | 6 ++++++ .../attendanceapimono/adapter/present/api/UserAPI.kt | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/com/example/attendanceapimono/adapter/present/api/JWTTokenV1.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/JWTTokenV1.kt b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/JWTTokenV1.kt new file mode 100644 index 0000000..25c5f17 --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/JWTTokenV1.kt @@ -0,0 +1,6 @@ +package com.example.attendanceapimono.adapter.present.api + +import io.swagger.v3.oas.annotations.security.SecurityRequirement + +@SecurityRequirement(name = "signedTokenV1") +annotation class JWTTokenV1 diff --git a/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/UserAPI.kt b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/UserAPI.kt index 18971fd..694e21b 100644 --- a/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/UserAPI.kt +++ b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/UserAPI.kt @@ -74,10 +74,11 @@ interface UserAPI { description = "토큰 체크 및 재생성 하는 기능", content = [Content( mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = Schema(implementation = TokenResponse::class), - examples = [ExampleObject(TokenResponse.Example)] + schema = Schema(implementation = ReSignResponse::class), + examples = [ExampleObject(ReSignResponse.Example)] )], ) + @JWTTokenV1 @ResponseStatus(HttpStatus.OK) @GetMapping("/token") suspend fun reSign(@LoginUserID userID: UUID): ResponseEntity>