Skip to content
Snippets Groups Projects
Commit 3b95df29 authored by Konstantin Munichev's avatar Konstantin Munichev
Browse files

Encode protobuf payloads as Base64 strings before to put them into Fabric

parent 16269696
No related branches found
Tags v1.0.0-release
2 merge requests!54Release 2.0.0,!16DLT component (and related) improvements
......@@ -118,7 +118,12 @@ fun main() = runBlocking {
val data = DltGateway.DltRecord.newBuilder()
.setRecordId(id)
.setOperation(DltGateway.DltRecordOperationEnum.DLTRECORDOPERATION_ADD)
.setDataJson("{}")
.setDataJson("\"{\"device_config\": {\"config_rules\": []}, \"device_drivers\": []," +
"\"device_endpoints\": [], \"device_id\": {\"device_uuid\": {\"uuid\": \"dev-12345\"}}," +
"\"device_operational_status\": \"DEVICEOPERATIONALSTATUS_ENABLED\"," +
"\"device_type\": \"packet-router\"}\", \"operation\": \"DLTRECORDOPERATION_ADD\"," +
"\"record_id\": {\"domain_uuid\": {\"uuid\": \"tfs-a\"}, \"record_uuid\": {\"uuid\": \"dev-12345\"}," +
"\"type\": \"DLTRECORDTYPE_DEVICE\"}")
.build()
println("sending new record")
......
......@@ -60,6 +60,9 @@ class FabricConnector(val config: Config.DltConfig) {
private val channels: MutableList<Channel<DltRecordEvent>> = mutableListOf()
private val encoder: Base64.Encoder = Base64.getEncoder()
private val decoder: Base64.Decoder = Base64.getDecoder()
init {
// Create a CA client for interacting with the CA.
val props = Properties()
......@@ -80,7 +83,7 @@ class FabricConnector(val config: Config.DltConfig) {
val consumer = Consumer { event: ContractEvent? ->
run {
println("new event detected")
val record = DltRecord.parseFrom(event?.payload?.get())
val record = DltRecord.parseFrom(decoder.decode(event?.payload?.get()))
println(record.recordId.recordUuid)
val eventType: ContextOuterClass.EventTypeEnum = when (event?.name) {
"Add" -> ContextOuterClass.EventTypeEnum.EVENTTYPE_CREATE
......@@ -118,13 +121,12 @@ class FabricConnector(val config: Config.DltConfig) {
fun putData(record: DltRecord): String {
println(record.toString())
println("Put: ${record.toByteArray().decodeToString().length}")
try {
contract.submitTransaction(
"AddRecord",
record.recordId.recordUuid.uuid,
record.toByteArray().decodeToString()
encoder.encodeToString(record.toByteArray())
)
} catch (e: Exception) {
println(e.toString())
......@@ -134,13 +136,12 @@ class FabricConnector(val config: Config.DltConfig) {
}
fun getData(uuid: String): DltRecord {
try {
return try {
val result = contract.evaluateTransaction("GetRecord", uuid)
println("Get: ${result.size}")
return DltRecord.parseFrom(result)
DltRecord.parseFrom(decoder.decode(result))
} catch (e: Exception) {
println(e.toString())
return DltRecord.getDefaultInstance()
DltRecord.getDefaultInstance()
}
}
......@@ -149,7 +150,7 @@ class FabricConnector(val config: Config.DltConfig) {
contract.submitTransaction(
"UpdateRecord",
record.recordId.recordUuid.uuid,
record.toByteArray().decodeToString()
encoder.encodeToString(record.toByteArray())
)
} catch (e: Exception) {
return e.toString()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment