23 lines
497 B
Go
23 lines
497 B
Go
|
|
package app
|
||
|
|
|
||
|
|
import (
|
||
|
|
"encoding/json"
|
||
|
|
"fmt"
|
||
|
|
)
|
||
|
|
|
||
|
|
func decodeMonitoringTaskResultEnvelope(payload []byte) (*monitoringTaskResultEnvelope, error) {
|
||
|
|
if len(payload) == 0 {
|
||
|
|
return nil, fmt.Errorf("monitoring task result payload is empty")
|
||
|
|
}
|
||
|
|
|
||
|
|
var envelope monitoringTaskResultEnvelope
|
||
|
|
if err := json.Unmarshal(payload, &envelope); err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
if envelope.TaskID <= 0 {
|
||
|
|
return nil, fmt.Errorf("monitoring task result payload missing task_id")
|
||
|
|
}
|
||
|
|
|
||
|
|
return &envelope, nil
|
||
|
|
}
|