Files
micromdm/workflow/webhook/acknowledge.go
Victor Vrantchan 35051e7d9b Add a more complete webhook worker. (#424)
Adds a webhook worker which is scaffolded to support multiple event types.
Supports Checkin And Acknowledge events from the start.
2018-05-30 09:14:19 -07:00

38 lines
938 B
Go

package webhook
import (
"github.com/pkg/errors"
"github.com/micromdm/micromdm/mdm"
)
type AcknowledgeEvent struct {
UDID string `json:"udid"`
Status string `json:"status"`
CommandUUID string `json:"command_uuid"`
Params map[string]string `json:"url_params"`
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,
},
}
return &webhookEvent, nil
}