Skip to content

Commit

Permalink
Merge pull request #36 from clojj/main
Browse files Browse the repository at this point in the history
  • Loading branch information
nomisRev committed Dec 23, 2021
2 parents edb59e9 + 8e4ef39 commit 027a037
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
2 changes: 2 additions & 0 deletions examples/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@ dependencies {
implementation(projects.docs.openapiDocs)
implementation(libs.ktor.server.core)
implementation(libs.ktor.server.netty)
implementation(libs.spring.boot.starter.webflux)
implementation(libs.logback.classic)
implementation(libs.kotlinx.serialization.json)
implementation(project(":servers:spring-web-server"))
}

application {
Expand Down
42 changes: 42 additions & 0 deletions examples/src/main/kotlin/springboot/SpringBoot.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package springboot

import arrow.core.Either
import arrow.endpoint.*
import arrow.endpoint.server.ServerEndpoint
import arrow.endpoint.spring.server.routerFunction
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.web.reactive.function.server.RouterFunction
import org.springframework.web.reactive.function.server.ServerResponse

@SpringBootApplication
open class SpringBoot

fun main(args: Array<String>) {
runApplication<SpringBoot>(*args)
}

val helloSpring: Endpoint<Unit, String, String> =
Endpoint
.get()
.errorOutput(ArrowEndpoint.stringBody())
.input(ArrowEndpoint.fixedPath("hello"))
.output(ArrowEndpoint.stringBody())

@Configuration
open class SpringBootConfig {

@Bean
open fun getHelloRoute(): RouterFunction<ServerResponse> {
val routerFunction: RouterFunction<ServerResponse> = routerFunction(ServerEndpoint(helloSpring) {
if ((1..2).random() == 1)
Either.Right("Hello Spring Boot !")
else
Either.Left("oops, it's just not my day...")

})
return routerFunction
}
}

0 comments on commit 027a037

Please sign in to comment.