util.go 851 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package v1
  2. // Converts an event object into a response object.
  3. func eventToResponse(event *store.Event) interface{} {
  4. if !event.Dir {
  5. response := &store.Response{
  6. Action: event.Action,
  7. Key: event.Key,
  8. Value: event.Value,
  9. PrevValue: event.PrevValue,
  10. Index: event.Index,
  11. TTL: event.TTL,
  12. Expiration: event.Expiration,
  13. }
  14. if response.Action == store.Create || response.Action == store.Update {
  15. response.Action = "set"
  16. if response.PrevValue == "" {
  17. response.NewKey = true
  18. }
  19. }
  20. return response
  21. } else {
  22. responses := make([]*store.Response, len(event.KVPairs))
  23. for i, kv := range event.KVPairs {
  24. responses[i] = &store.Response{
  25. Action: event.Action,
  26. Key: kv.Key,
  27. Value: kv.Value,
  28. Dir: kv.Dir,
  29. Index: event.Index,
  30. }
  31. }
  32. return responses
  33. }
  34. }