2025-05-29 16:48:53 +05:30
|
|
|
import std/json
|
2026-01-29 15:22:40 +05:30
|
|
|
import ./json_base_event, ../../src/[message], std/base64
|
2025-05-29 16:48:53 +05:30
|
|
|
|
|
|
|
|
type JsonMissingDependenciesEvent* = ref object of JsonEvent
|
|
|
|
|
messageId*: SdsMessageID
|
2026-01-29 15:22:40 +05:30
|
|
|
missingDeps*: seq[HistoryEntry]
|
2025-07-17 14:13:21 +05:30
|
|
|
channelId*: SdsChannelID
|
2025-05-29 16:48:53 +05:30
|
|
|
|
|
|
|
|
proc new*(
|
|
|
|
|
T: type JsonMissingDependenciesEvent,
|
|
|
|
|
messageId: SdsMessageID,
|
2026-01-29 15:22:40 +05:30
|
|
|
missingDeps: seq[HistoryEntry],
|
2025-07-17 14:13:21 +05:30
|
|
|
channelId: SdsChannelID,
|
2025-05-29 16:48:53 +05:30
|
|
|
): T =
|
|
|
|
|
return JsonMissingDependenciesEvent(
|
2025-07-17 14:13:21 +05:30
|
|
|
eventType: "missing_dependencies", messageId: messageId, missingDeps: missingDeps, channelId: channelId
|
2025-05-29 16:48:53 +05:30
|
|
|
)
|
|
|
|
|
|
|
|
|
|
method `$`*(jsonMissingDependencies: JsonMissingDependenciesEvent): string =
|
2026-01-29 15:22:40 +05:30
|
|
|
var node = newJObject()
|
|
|
|
|
node["eventType"] = %*jsonMissingDependencies.eventType
|
|
|
|
|
node["messageId"] = %*jsonMissingDependencies.messageId
|
|
|
|
|
node["channelId"] = %*jsonMissingDependencies.channelId
|
|
|
|
|
var missingDepsNode = newJArray()
|
|
|
|
|
for dep in jsonMissingDependencies.missingDeps:
|
|
|
|
|
var depNode = newJObject()
|
|
|
|
|
depNode["messageId"] = %*dep.messageId
|
|
|
|
|
depNode["retrievalHint"] = %*encode(dep.retrievalHint)
|
|
|
|
|
missingDepsNode.add(depNode)
|
|
|
|
|
node["missingDeps"] = missingDepsNode
|
|
|
|
|
$node
|