Skip to content
Snippets Groups Projects
Commit 09e94592 authored by Sebastian's avatar Sebastian
Browse files

WIP

parent bed41bb9
No related tags found
No related merge requests found
Pipeline #7641 passed
...@@ -6,9 +6,20 @@ import io.ktor.http.ContentType ...@@ -6,9 +6,20 @@ import io.ktor.http.ContentType
import io.ktor.response.respondText import io.ktor.response.respondText
import io.ktor.routing.get import io.ktor.routing.get
import io.ktor.routing.routing import io.ktor.routing.routing
import org.briarproject.mailbox.core.db.Database
import java.sql.Connection
internal fun Application.configureRouting() = routing { internal fun Application.configureRouting(database: Database<Connection>) = routing {
get("/") { get("/") {
call.respondText("Hello world!", ContentType.Text.Plain) call.respondText("Hello world!", ContentType.Text.Plain)
} }
get("/contacts/{id}") {
val id = Integer.parseInt(call.parameters["id"])
val txn = database.startTransaction()
val contact = database.getContact(txn, id)
if (contact != null) {
call.respondText("${contact.id}", ContentType.Text.Plain)
}
}
} }
...@@ -4,13 +4,15 @@ import io.ktor.application.install ...@@ -4,13 +4,15 @@ import io.ktor.application.install
import io.ktor.features.CallLogging import io.ktor.features.CallLogging
import io.ktor.server.engine.embeddedServer import io.ktor.server.engine.embeddedServer
import io.ktor.server.netty.Netty import io.ktor.server.netty.Netty
import org.briarproject.mailbox.core.db.Database
import org.briarproject.mailbox.core.lifecycle.Service import org.briarproject.mailbox.core.lifecycle.Service
import org.slf4j.LoggerFactory.getLogger import org.slf4j.LoggerFactory.getLogger
import java.sql.Connection
import javax.inject.Inject import javax.inject.Inject
import javax.inject.Singleton import javax.inject.Singleton
@Singleton @Singleton
class WebServerManager @Inject constructor() : Service { class WebServerManager @Inject constructor(private val database: Database<Connection>) : Service {
internal companion object { internal companion object {
internal const val PORT = 8000 internal const val PORT = 8000
...@@ -20,7 +22,7 @@ class WebServerManager @Inject constructor() : Service { ...@@ -20,7 +22,7 @@ class WebServerManager @Inject constructor() : Service {
private val server by lazy { private val server by lazy {
embeddedServer(Netty, PORT, watchPaths = emptyList()) { embeddedServer(Netty, PORT, watchPaths = emptyList()) {
install(CallLogging) install(CallLogging)
configureRouting() configureRouting(database)
} }
} }
......
...@@ -4,7 +4,9 @@ import dagger.Module ...@@ -4,7 +4,9 @@ import dagger.Module
import dagger.Provides import dagger.Provides
import dagger.hilt.InstallIn import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent import dagger.hilt.components.SingletonComponent
import org.briarproject.mailbox.core.db.Database
import org.briarproject.mailbox.core.lifecycle.LifecycleManager import org.briarproject.mailbox.core.lifecycle.LifecycleManager
import java.sql.Connection
import javax.inject.Singleton import javax.inject.Singleton
@Module @Module
...@@ -13,8 +15,11 @@ internal class WebServerModule { ...@@ -13,8 +15,11 @@ internal class WebServerModule {
@Provides @Provides
@Singleton @Singleton
fun provideWebServer(lifecycleManager: LifecycleManager): WebServerManager { fun provideWebServer(
val webServerManager = WebServerManager() lifecycleManager: LifecycleManager,
database: Database<Connection>,
): WebServerManager {
val webServerManager = WebServerManager(database)
lifecycleManager.registerService(webServerManager) lifecycleManager.registerService(webServerManager)
return webServerManager return webServerManager
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment