/
acknowledge.go
41 lines (35 loc) · 1.13 KB
/
acknowledge.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package webhook
import (
"github.com/pkg/errors"
"github.com/micromdm/micromdm/mdm"
)
type AcknowledgeEvent struct {
UDID string `json:"udid,omitempty"`
EnrollmentID string `json:"enrollment_id,omitempty"`
Status string `json:"status"`
CommandUUID string `json:"command_uuid,omitempty"`
Params map[string]string `json:"url_params,omitempty"`
RawPayload []byte `json:"raw_payload"`
}
func acknowledgeEvent(topic string, data []byte) (*Event, error) {
var ev mdm.AcknowledgeEvent
if err := mdm.UnmarshalAcknowledgeEvent(data, &ev); err != nil {
return nil, errors.Wrap(err, "unmarshal acknowledge event for webhook")
}
webhookEvent := Event{
Topic: topic,
EventID: ev.ID,
CreatedAt: ev.Time,
AcknowledgeEvent: &AcknowledgeEvent{
UDID: ev.Response.UDID,
Status: ev.Response.Status,
CommandUUID: ev.Response.CommandUUID,
Params: ev.Params,
RawPayload: ev.Raw,
},
}
if ev.Response.EnrollmentID != nil {
webhookEvent.AcknowledgeEvent.EnrollmentID = *ev.Response.EnrollmentID
}
return &webhookEvent, nil
}