use kotlinx serialization
This commit is contained in:
@ -1,15 +1,15 @@
|
||||
package mq
|
||||
|
||||
import api.ApiObject
|
||||
import com.google.gson.Gson
|
||||
import com.rabbitmq.client.*
|
||||
import database.service.IResultObjectService
|
||||
import kotlinx.serialization.decodeFromString
|
||||
import kotlinx.serialization.json.Json
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
|
||||
class DatabaseConsumer(channel: Channel): Consumer, KoinComponent {
|
||||
private val resultObjectService : IResultObjectService by inject()
|
||||
private val gson = Gson()
|
||||
private val basicChannel = channel
|
||||
override fun handleConsumeOk(consumerTag : String?) {
|
||||
}
|
||||
@ -30,7 +30,7 @@ class DatabaseConsumer(channel: Channel): Consumer, KoinComponent {
|
||||
override fun handleDelivery(consumerTag : String?, envelope : Envelope?, basicProperties : AMQP.BasicProperties?, body : ByteArray?) {
|
||||
try {
|
||||
val rawJson = body!!.toString(Charsets.UTF_8)
|
||||
val apiObject = gson.fromJson(rawJson, ApiObject::class.java)
|
||||
val apiObject = Json.decodeFromString<ApiObject>(rawJson)
|
||||
resultObjectService.addOne(apiObject)
|
||||
basicChannel.basicAck(envelope!!.deliveryTag, false)
|
||||
} catch (e: Exception) {
|
||||
|
Reference in New Issue
Block a user