feat(user): add users controller
Signed-off-by: Alan Brault <alan.brault@visus.io>
This commit is contained in:
@@ -8,10 +8,12 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement
|
||||
import io.swagger.v3.oas.annotations.tags.Tag
|
||||
import io.visus.demos.kotlinapi.api.ApiVersion
|
||||
import io.visus.demos.kotlinapi.api.dto.AuthResponse
|
||||
import io.visus.demos.kotlinapi.api.dto.ErrorResponse
|
||||
import io.visus.demos.kotlinapi.api.dto.LoginRequest
|
||||
import io.visus.demos.kotlinapi.api.dto.RefreshTokenRequest
|
||||
import io.visus.demos.kotlinapi.api.contracts.AuthResponse
|
||||
import io.visus.demos.kotlinapi.api.contracts.ErrorResponse
|
||||
import io.visus.demos.kotlinapi.api.contracts.LoginRequest
|
||||
import io.visus.demos.kotlinapi.api.contracts.RefreshTokenRequest
|
||||
import io.visus.demos.kotlinapi.api.contracts.RegisterRequest
|
||||
import io.visus.demos.kotlinapi.api.contracts.RegisterResponse
|
||||
import io.visus.demos.kotlinapi.domain.model.User
|
||||
import io.visus.demos.kotlinapi.domain.service.AuthService
|
||||
import jakarta.validation.Valid
|
||||
@@ -117,4 +119,31 @@ class AuthController(
|
||||
val response = authService.refreshToken(request.refreshToken)
|
||||
return ResponseEntity.ok(response)
|
||||
}
|
||||
|
||||
@PostMapping("/auth/register", produces = [MediaType.APPLICATION_JSON_VALUE])
|
||||
@Operation(
|
||||
summary = "Register new user",
|
||||
description = "Creates a new user account",
|
||||
security = [],
|
||||
)
|
||||
@ApiResponses(
|
||||
value = [
|
||||
ApiResponse(
|
||||
responseCode = "201",
|
||||
description = "User successfully registered",
|
||||
content = [Content(schema = Schema(implementation = RegisterResponse::class))],
|
||||
),
|
||||
ApiResponse(
|
||||
responseCode = "400",
|
||||
description = "Invalid request payload",
|
||||
content = [Content(schema = Schema(implementation = ErrorResponse::class))],
|
||||
),
|
||||
],
|
||||
)
|
||||
suspend fun register(
|
||||
@Valid @RequestBody request: RegisterRequest,
|
||||
): ResponseEntity<RegisterResponse> {
|
||||
val user = authService.register(request.email, request.password)
|
||||
return ResponseEntity.status(201).body(user)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user