Update kotlin libs

This commit is contained in:
2023-05-09 22:40:10 +02:00
parent 5aa2e80c5f
commit f2bdc8d6c7
66 changed files with 261 additions and 264 deletions
+3 -3
View File
@@ -1,10 +1,10 @@
package be.simplenotes.app
import jakarta.annotation.PostConstruct
import jakarta.annotation.PreDestroy
import jakarta.inject.Singleton
import org.http4k.server.Http4kServer
import org.slf4j.LoggerFactory
import javax.annotation.PostConstruct
import javax.annotation.PreDestroy
import javax.inject.Singleton
import be.simplenotes.config.ServerConfig as SimpleNotesServerConfig
@Singleton
+3 -3
View File
@@ -16,7 +16,7 @@ import org.http4k.core.Status.Companion.OK
import org.http4k.lens.Path
import org.http4k.lens.uuid
import java.util.*
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class ApiNoteController(
@@ -28,7 +28,7 @@ class ApiNoteController(
val content = noteContentLens(request)
return noteService.create(loggedInUser, content).fold(
{ Response(BAD_REQUEST) },
{ uuidContentLens(UuidContent(it.uuid), Response(OK)) }
{ uuidContentLens(UuidContent(it.uuid), Response(OK)) },
)
}
@@ -51,7 +51,7 @@ class ApiNoteController(
{
if (it == null) Response(NOT_FOUND)
else Response(OK)
}
},
)
}
+2 -2
View File
@@ -9,7 +9,7 @@ import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status.Companion.BAD_REQUEST
import org.http4k.core.Status.Companion.OK
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class ApiUserController(
@@ -23,7 +23,7 @@ class ApiUserController(
.login(loginFormLens(request))
.fold(
{ Response(BAD_REQUEST) },
{ tokenLens(Token(it), Response(OK)) }
{ tokenLens(Token(it), Response(OK)) },
)
}
+1 -1
View File
@@ -6,7 +6,7 @@ import be.simplenotes.views.BaseView
import org.http4k.core.Request
import org.http4k.core.Response
import org.http4k.core.Status.Companion.OK
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class BaseController(private val view: BaseView) {
+9 -9
View File
@@ -15,7 +15,7 @@ import org.http4k.core.Status.Companion.OK
import org.http4k.core.body.form
import org.http4k.routing.path
import java.util.*
import javax.inject.Singleton
import jakarta.inject.Singleton
import kotlin.math.abs
@Singleton
@@ -35,24 +35,24 @@ class NoteController(
MarkdownParsingError.MissingMeta -> view.noteEditor(
loggedInUser,
error = "Missing note metadata",
textarea = markdownForm
textarea = markdownForm,
)
MarkdownParsingError.InvalidMeta -> view.noteEditor(
loggedInUser,
error = "Invalid note metadata",
textarea = markdownForm
textarea = markdownForm,
)
is MarkdownParsingError.ValidationError -> view.noteEditor(
loggedInUser,
validationErrors = it.validationErrors,
textarea = markdownForm
textarea = markdownForm,
)
}
Response(BAD_REQUEST).html(html)
},
{
Response.redirect("/notes/${it.uuid}")
}
},
)
}
@@ -114,24 +114,24 @@ class NoteController(
MarkdownParsingError.MissingMeta -> view.noteEditor(
loggedInUser,
error = "Missing note metadata",
textarea = markdownForm
textarea = markdownForm,
)
MarkdownParsingError.InvalidMeta -> view.noteEditor(
loggedInUser,
error = "Invalid note metadata",
textarea = markdownForm
textarea = markdownForm,
)
is MarkdownParsingError.ValidationError -> view.noteEditor(
loggedInUser,
validationErrors = it.validationErrors,
textarea = markdownForm
textarea = markdownForm,
)
}
Response(BAD_REQUEST).html(html)
},
{
Response.redirect("/notes/${note.uuid}")
}
},
)
}
+7 -7
View File
@@ -11,7 +11,7 @@ import be.simplenotes.views.SettingView
import org.http4k.core.*
import org.http4k.core.body.form
import org.http4k.core.cookie.invalidateCookie
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class SettingsController(
@@ -33,20 +33,20 @@ class SettingsController(
DeleteError.WrongPassword -> Response(Status.OK).html(
settingView.settings(
loggedInUser,
error = "Wrong password"
)
error = "Wrong password",
),
)
is DeleteError.InvalidForm -> Response(Status.OK).html(
settingView.settings(
loggedInUser,
validationErrors = it.validationErrors
)
validationErrors = it.validationErrors,
),
)
}
},
{
Response.redirect("/").invalidateCookie("Bearer")
}
},
)
}
@@ -73,7 +73,7 @@ class SettingsController(
.body(exportService.exportAsJson(loggedInUser.userId))
} else Response(Status.OK).body(exportService.exportAsJson(loggedInUser.userId)).header(
"Content-Type",
"application/json"
"application/json",
)
}
+12 -12
View File
@@ -17,7 +17,7 @@ import org.http4k.core.cookie.SameSite
import org.http4k.core.cookie.cookie
import org.http4k.core.cookie.invalidateCookie
import java.util.concurrent.TimeUnit
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class UserController(
@@ -27,7 +27,7 @@ class UserController(
) {
fun register(request: Request, loggedInUser: LoggedInUser?): Response {
if (request.method == GET) return Response(OK).html(
userView.register(loggedInUser)
userView.register(loggedInUser),
)
val result = userService.register(request.registerForm())
@@ -37,19 +37,19 @@ class UserController(
val html = when (it) {
RegisterError.UserExists -> userView.register(
loggedInUser,
error = "User already exists"
error = "User already exists",
)
is RegisterError.InvalidRegisterForm ->
userView.register(
loggedInUser,
validationErrors = it.validationErrors
validationErrors = it.validationErrors,
)
}
Response(OK).html(html)
},
{
Response.redirect("/login")
}
},
)
}
@@ -58,7 +58,7 @@ class UserController(
fun login(request: Request, loggedInUser: LoggedInUser?): Response {
if (request.method == GET) return Response(OK).html(
userView.login(loggedInUser)
userView.login(loggedInUser),
)
val result = userService.login(request.loginForm())
@@ -69,24 +69,24 @@ class UserController(
LoginError.Unregistered ->
userView.login(
loggedInUser,
error = "User does not exist"
error = "User does not exist",
)
LoginError.WrongPassword ->
userView.login(
loggedInUser,
error = "Wrong password"
error = "Wrong password",
)
is LoginError.InvalidLoginForm ->
userView.login(
loggedInUser,
validationErrors = it.validationErrors
validationErrors = it.validationErrors,
)
}
Response(OK).html(html)
},
{ token ->
Response.redirect("/notes").loginCookie(token, request.isSecure())
}
},
)
}
@@ -101,8 +101,8 @@ class UserController(
httpOnly = true,
sameSite = SameSite.Lax,
maxAge = validityInSeconds,
secure = secure
)
secure = secure,
),
)
}
+3 -3
View File
@@ -24,13 +24,13 @@ fun Request.isSecure() = header("X-Forwarded-Proto")?.contains("https") ?: false
val bodyLens = httpBodyRoot(
listOf(Meta(true, "body", ParamMeta.ObjectParam, "body")),
ContentType.APPLICATION_JSON.withNoDirectives(),
ContentNegotiation.StrictNoDirective
ContentNegotiation.StrictNoDirective,
).map(
{ it.payload.asString() },
{ Body(it) }
{ Body(it) },
)
inline fun <reified T> Json.auto(): BiDiBodyLensSpec<T> = bodyLens.map(
{ decodeFromString(it) },
{ encodeToString(it) }
{ encodeToString(it) },
)
+1 -1
View File
@@ -10,7 +10,7 @@ import org.http4k.core.Status.Companion.NOT_IMPLEMENTED
import org.http4k.core.Status.Companion.SERVICE_UNAVAILABLE
import org.slf4j.LoggerFactory
import java.sql.SQLTransientException
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class ErrorFilter(private val errorView: ErrorView) : Filter {
+2 -2
View File
@@ -8,14 +8,14 @@ import org.eclipse.jetty.servlet.ServletHolder
import org.http4k.core.HttpHandler
import org.http4k.server.Http4kServer
import org.http4k.server.ServerConfig
import org.http4k.servlet.asServlet
import org.http4k.servlet.jakarta.asServlet
class Jetty(private val port: Int, private val server: Server) : ServerConfig {
constructor(port: Int, vararg inConnectors: ConnectorBuilder) : this(
port,
Server().apply {
inConnectors.forEach { addConnector(it(this)) }
}
},
)
override fun toServer(http: HttpHandler): Http4kServer {
+3 -3
View File
@@ -7,8 +7,8 @@ import io.micronaut.context.annotation.Factory
import io.micronaut.context.annotation.Primary
import org.http4k.core.RequestContexts
import org.http4k.lens.RequestContextKey
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
@Factory
class AuthModule {
@@ -39,7 +39,7 @@ class AuthModule {
simpleJwt = simpleJwt,
lens = lens,
source = JwtSource.Header,
redirect = false
redirect = false,
)
@Singleton
+1 -1
View File
@@ -7,7 +7,7 @@ import kotlinx.serialization.json.Json
import kotlinx.serialization.modules.SerializersModule
import java.time.LocalDateTime
import java.util.*
import javax.inject.Singleton
import jakarta.inject.Singleton
@Factory
class JsonModule {
+2 -2
View File
@@ -9,8 +9,8 @@ import io.micronaut.context.annotation.Factory
import org.eclipse.jetty.server.ServerConnector
import org.http4k.server.Http4kServer
import org.http4k.server.asServer
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
import org.eclipse.jetty.server.Server as JettyServer
import org.http4k.server.ServerConfig as Http4kServerConfig
+4 -5
View File
@@ -12,8 +12,8 @@ import org.http4k.routing.RoutingHttpHandler
import org.http4k.routing.bind
import org.http4k.routing.routes
import java.util.function.Supplier
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
@Singleton
class ApiRoutes(
@@ -23,7 +23,6 @@ class ApiRoutes(
@Named("required") private val authLens: RequiredAuthLens,
) : Supplier<RoutingHttpHandler> {
override fun get(): RoutingHttpHandler {
infix fun PathMethod.to(action: ProtectedHandler) =
this to { req: Request -> action(req, authLens(req)) }
@@ -38,9 +37,9 @@ class ApiRoutes(
"/search" bind POST to ::search,
"/{uuid}" bind GET to ::note,
"/{uuid}" bind PUT to ::update,
)
),
).withBasePath("/notes")
}
},
).withBasePath("/api")
}
+6 -7
View File
@@ -13,8 +13,8 @@ import org.http4k.core.Request
import org.http4k.core.then
import org.http4k.routing.*
import java.util.function.Supplier
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
@Singleton
class BasicRoutes(
@@ -26,7 +26,6 @@ class BasicRoutes(
) : Supplier<RoutingHttpHandler> {
override fun get(): RoutingHttpHandler {
infix fun PathMethod.to(action: PublicHandler) =
this to { req: Request -> action(req, authLens(req)) }
@@ -34,8 +33,8 @@ class BasicRoutes(
static(
ResourceLoader.Classpath("/static"),
"woff2" to ContentType("font/woff2"),
"webmanifest" to ContentType("application/manifest+json")
)
"webmanifest" to ContentType("application/manifest+json"),
),
)
return routes(
@@ -48,9 +47,9 @@ class BasicRoutes(
"/login" bind POST to userCtrl::login,
"/logout" bind POST to userCtrl::logout,
"/notes/public/{uuid}" bind GET to noteCtrl::public,
)
),
),
staticHandler
staticHandler,
)
}
}
+3 -4
View File
@@ -12,8 +12,8 @@ import org.http4k.routing.RoutingHttpHandler
import org.http4k.routing.bind
import org.http4k.routing.routes
import java.util.function.Supplier
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
@Singleton
class NoteRoutes(
@@ -22,7 +22,6 @@ class NoteRoutes(
@Named("required") private val authLens: RequiredAuthLens,
) : Supplier<RoutingHttpHandler> {
override fun get(): RoutingHttpHandler {
infix fun PathMethod.to(action: ProtectedHandler) =
this to { req: Request -> action(req, authLens(req)) }
@@ -40,7 +39,7 @@ class NoteRoutes(
"/{uuid}/edit" bind POST to ::edit,
"/deleted/{uuid}" bind POST to ::deleted,
).withBasePath("/notes")
}
},
)
}
}
+2 -3
View File
@@ -9,7 +9,7 @@ import org.http4k.filter.ServerFilters.InitialiseRequestContext
import org.http4k.routing.RoutingHttpHandler
import org.http4k.routing.routes
import java.util.function.Supplier
import javax.inject.Singleton
import jakarta.inject.Singleton
@Singleton
class Router(
@@ -18,9 +18,8 @@ class Router(
private val subRouters: List<Supplier<RoutingHttpHandler>>,
) {
operator fun invoke(): RoutingHttpHandler {
val routes = routes(
*subRouters.map { it.get() }.toTypedArray()
*subRouters.map { it.get() }.toTypedArray(),
)
return errorFilter
+3 -4
View File
@@ -12,8 +12,8 @@ import org.http4k.routing.RoutingHttpHandler
import org.http4k.routing.bind
import org.http4k.routing.routes
import java.util.function.Supplier
import javax.inject.Named
import javax.inject.Singleton
import jakarta.inject.Named
import jakarta.inject.Singleton
@Singleton
class SettingsRoutes(
@@ -22,7 +22,6 @@ class SettingsRoutes(
@Named("required") private val authLens: RequiredAuthLens,
) : Supplier<RoutingHttpHandler> {
override fun get(): RoutingHttpHandler {
infix fun PathMethod.to(action: ProtectedHandler) =
this to { req: Request -> action(req, authLens(req)) }
@@ -31,7 +30,7 @@ class SettingsRoutes(
"/settings" bind GET to settingsController::settings,
"/settings" bind POST to settingsController::settings,
"/export" bind POST to settingsController::export,
)
),
)
}
}
+1 -1
View File
@@ -3,7 +3,7 @@ package be.simplenotes.app.utils
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import javax.inject.Singleton
import jakarta.inject.Singleton
interface StaticFileResolver {
fun resolve(name: String): String?
+2 -2
View File
@@ -58,8 +58,8 @@ internal class RequiredAuthFilterTest {
},
"/protected" bind GET to requiredAuth.then { request: Request ->
Response(OK).body(requiredLens(request).toString())
}
)
},
),
)
// endregion