diff --git a/handlers_nats.go b/handlers_nats.go index b1dbbad..a27e1c7 100644 --- a/handlers_nats.go +++ b/handlers_nats.go @@ -902,8 +902,16 @@ func listSnapshotsEventHandler(m *nats.Msg, message *RequestMessage) error { return errorReplyFormater(m, "backend error", err) } + var output SnapshotsMetadata + for _, snapshot := range snapshots { + output = append(output, SnapshotMetadata{ + Key: snapshot.KeyName(), + Metadata: snapshot, + }) + } + reply := ReplyMessage{ - Payload: snapshots, + Payload: output, } data, err := json.Marshal(reply) @@ -943,8 +951,16 @@ func listAppsSnapshotsEventHandler(m *nats.Msg, message *RequestMessage) error { return errorReplyFormater(m, "backend error", err) } + var output SnapshotsMetadata + for _, snapshot := range snapshots { + output = append(output, SnapshotMetadata{ + Key: snapshot.KeyName(), + Metadata: snapshot, + }) + } + reply := ReplyMessage{ - Payload: snapshots, + Payload: output, } data, err := json.Marshal(reply) @@ -984,8 +1000,16 @@ func listSnapshotsByLabelEventHandler(m *nats.Msg, message *RequestMessage) erro return errorReplyFormater(m, "backend error", err) } + var output SnapshotsMetadata + for _, snapshot := range snapshots { + output = append(output, SnapshotMetadata{ + Key: snapshot.KeyName(), + Metadata: snapshot, + }) + } + reply := ReplyMessage{ - Payload: snapshots, + Payload: output, } data, err := json.Marshal(reply) diff --git a/types.go b/types.go index bf344e5..7305f42 100644 --- a/types.go +++ b/types.go @@ -1,6 +1,10 @@ package main -import "encoding/json" +import ( + "encoding/json" + + "github.com/rosti-cz/node-api/apps" +) // Path where authorized keys are const sshPubKeysLocation = "/srv/.ssh/authorized_keys" @@ -60,3 +64,12 @@ type QuickServices struct { Memcached bool `json:"memcached"` Redis bool `json:"redis"` } + +// SnapshotMetadata is snapshot structure encapsulation that combines key and metadata about the snapshot +type SnapshotMetadata struct { + Key string `json:"key"` + Metadata apps.Snapshot `json:"metadata"` +} + +// SnapshotsMetadata is returned by handlers +type SnapshotsMetadata []SnapshotMetadata