From 9fcca047e1fd35a1aab399eb1b12c875d2656e48 Mon Sep 17 00:00:00 2001 From: Lee Jaeseong Date: Fri, 13 Aug 2021 01:46:53 +0900 Subject: [PATCH] feat: attendance api, qr code response dto --- .../adapter/present/api/AttendanceAPI.kt | 37 +++++++++++++++++++ .../dto/attendace/QRCodeResponse.kt | 25 +++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 src/main/kotlin/com/example/attendanceapimono/adapter/present/api/AttendanceAPI.kt create mode 100644 src/main/kotlin/com/example/attendanceapimono/application/dto/attendace/QRCodeResponse.kt diff --git a/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/AttendanceAPI.kt b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/AttendanceAPI.kt new file mode 100644 index 0000000..0c2b6cc --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/adapter/present/api/AttendanceAPI.kt @@ -0,0 +1,37 @@ +package com.example.attendanceapimono.adapter.present.api + +import com.example.attendanceapimono.adapter.present.LoginUserID +import com.example.attendanceapimono.application.dto.attendace.QRCodeResponse +import io.swagger.v3.oas.annotations.Operation +import io.swagger.v3.oas.annotations.media.Content +import io.swagger.v3.oas.annotations.media.ExampleObject +import io.swagger.v3.oas.annotations.media.Schema +import io.swagger.v3.oas.annotations.responses.ApiResponse +import io.swagger.v3.oas.annotations.tags.Tag +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.http.ResponseEntity +import org.springframework.web.bind.annotation.GetMapping +import org.springframework.web.bind.annotation.ResponseStatus +import reactor.core.publisher.Mono + +@Tag(name = "출쳌 관련 API") +interface AttendanceAPI { + + @Operation( + summary = "QR 코드 생성", + ) + @ApiResponse( + responseCode = "200", + description = "QR 코드 생성 완료", + content = [Content( + mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = Schema(implementation = QRCodeResponse::class), + examples = [ExampleObject(QRCodeResponse.Example)] + )], + ) + @JWTTokenV1 + @ResponseStatus(HttpStatus.OK) + @GetMapping("/qr-code") + fun getQRCode(@LoginUserID id: String): ResponseEntity> +} \ No newline at end of file diff --git a/src/main/kotlin/com/example/attendanceapimono/application/dto/attendace/QRCodeResponse.kt b/src/main/kotlin/com/example/attendanceapimono/application/dto/attendace/QRCodeResponse.kt new file mode 100644 index 0000000..da8351f --- /dev/null +++ b/src/main/kotlin/com/example/attendanceapimono/application/dto/attendace/QRCodeResponse.kt @@ -0,0 +1,25 @@ +package com.example.attendanceapimono.application.dto.attendace + +import io.swagger.v3.oas.annotations.media.Schema +import java.util.* + +@Schema( + title = "QR Code 요청", + example = QRCodeResponse.Example, +) +data class QRCodeResponse( + @Schema(description = "QR Code 문자열") + val code: String, +) { + companion object { + const val Example = """ + { + "code": "7JWELOydvO2VmOq4sOyLq+uLpC4uLg==" + } + """ + } +} + +data class QRCodeValue( + val userID: UUID +) \ No newline at end of file