mirror of
https://github.com/Dannecron/spring-boot-demo.git
synced 2025-12-25 16:22:35 +03:00
fix edge-integration sub-projects
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client
|
||||
|
||||
import com.github.dannecron.demo.edgeintegration.client.dto.ImagesResponse
|
||||
import com.github.dannecron.demo.edgeintegration.client.exceptions.RequestException
|
||||
|
||||
interface Client {
|
||||
@Throws(RequestException::class)
|
||||
fun getCategories(): Set<String>
|
||||
|
||||
@Throws(RequestException::class)
|
||||
fun getImages(category: String, amount: Int): ImagesResponse
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.exceptions
|
||||
|
||||
class RequestException(message: String): RuntimeException(message)
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko
|
||||
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.dto.ImagesResponse
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.exceptions.RequestException
|
||||
|
||||
interface Client {
|
||||
@Throws(RequestException::class)
|
||||
fun getCategories(): Set<String>
|
||||
|
||||
@Throws(RequestException::class)
|
||||
fun getImages(category: String, amount: Int): ImagesResponse
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko
|
||||
|
||||
import com.github.dannecron.demo.edgeintegration.client.dto.CategoryFormat
|
||||
import com.github.dannecron.demo.edgeintegration.client.dto.ImagesResponse
|
||||
import com.github.dannecron.demo.edgeintegration.client.exceptions.RequestException
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.dto.CategoryFormat
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.dto.ImagesResponse
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.exceptions.RequestException
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.engine.HttpClientEngine
|
||||
import io.ktor.client.request.get
|
||||
@@ -12,7 +12,6 @@ import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.springframework.stereotype.Service
|
||||
|
||||
@Service
|
||||
class ClientImpl(
|
||||
engine: HttpClientEngine,
|
||||
private val baseUrl: String,
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.dto
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko.dto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.dto
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko.dto
|
||||
|
||||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.dto
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko.dto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko.exceptions
|
||||
|
||||
class RequestException(message: String): RuntimeException(message)
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.github.dannecron.demo.edgeintegration.configuration
|
||||
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.Client
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.ClientImpl
|
||||
import io.ktor.client.engine.HttpClientEngine
|
||||
import io.ktor.client.engine.cio.CIO
|
||||
import org.springframework.beans.factory.annotation.Value
|
||||
import org.springframework.context.annotation.Bean
|
||||
import org.springframework.context.annotation.Configuration
|
||||
|
||||
@Configuration
|
||||
class IntegrationConfiguration {
|
||||
|
||||
@Bean
|
||||
fun httpClientEngine(): HttpClientEngine = CIO.create()
|
||||
|
||||
@Bean
|
||||
fun nekoClient(
|
||||
httpClientEngine: HttpClientEngine,
|
||||
@Value("\${neko.baseUrl}") baseUrl: String,
|
||||
): Client = ClientImpl(
|
||||
engine = httpClientEngine,
|
||||
baseUrl = baseUrl,
|
||||
)
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.github.dannecron.demo.edgeintegration.client
|
||||
package com.github.dannecron.demo.edgeintegration.client.neko
|
||||
|
||||
import com.github.dannecron.demo.edgeintegration.client.exceptions.RequestException
|
||||
import com.github.dannecron.demo.edgeintegration.client.neko.exceptions.RequestException
|
||||
import io.ktor.client.engine.mock.MockEngine
|
||||
import io.ktor.client.engine.mock.respond
|
||||
import io.ktor.http.HttpHeaders
|
||||
@@ -34,7 +34,7 @@ class ClientImplTest {
|
||||
}
|
||||
|
||||
val client = ClientImpl(engine = mockEngine, baseUrl = "https://localhost")
|
||||
client.getCategories().let {
|
||||
client.getCategories().also {
|
||||
assertContains(it.toList(), "neko")
|
||||
assertContains(it.toList(), "wink")
|
||||
}
|
||||
@@ -88,7 +88,7 @@ class ClientImplTest {
|
||||
}
|
||||
|
||||
val client = ClientImpl(engine = mockEngine, baseUrl = "https://localhost")
|
||||
client.getImages(category = category, amount = amount).results.map {
|
||||
client.getImages(category = category, amount = amount).results.forEach {
|
||||
assertNull(it.sourceUrl)
|
||||
assertNull(it.artistName)
|
||||
assertNull(it.artistHref)
|
||||
@@ -126,7 +126,7 @@ class ClientImplTest {
|
||||
}
|
||||
|
||||
val client = ClientImpl(engine = mockEngine, baseUrl = "https://localhost")
|
||||
client.getImages(category = category, amount = amount).results.map {
|
||||
client.getImages(category = category, amount = amount).results.forEach {
|
||||
assertNotNull(it.sourceUrl)
|
||||
assertNotNull(it.artistName)
|
||||
assertNotNull(it.artistHref)
|
||||
Reference in New Issue
Block a user