(options db.ChangesOptions, feedType string, filter string, docIDs, channels []string)
| 677 | } |
| 678 | |
| 679 | func (h *handler) auditChangesFeedStart(options db.ChangesOptions, feedType string, filter string, docIDs, channels []string) { |
| 680 | auditFields := base.AuditFields{ |
| 681 | base.AuditFieldSince: options.Since.String(), |
| 682 | base.AuditFieldFeedType: feedType, |
| 683 | } |
| 684 | if filter != "" { |
| 685 | auditFields[base.AuditFieldFilter] = filter |
| 686 | if len(docIDs) > 0 { |
| 687 | auditFields[base.AuditFieldDocIDs] = docIDs |
| 688 | } |
| 689 | if len(channels) > 0 { |
| 690 | auditFields[base.AuditFieldChannels] = channels |
| 691 | } |
| 692 | } |
| 693 | if options.IncludeDocs { |
| 694 | auditFields[base.AuditFieldIncludeDocs] = true |
| 695 | } |
| 696 | base.Audit(h.ctx(), base.AuditIDChangesFeedStarted, auditFields) |
| 697 | } |
| 698 | |
| 699 | // Helper function to read a complete message from a WebSocket |
| 700 | func readWebSocketMessage(ctx context.Context, conn *websocket.Conn) ([]byte, error) { |
no test coverage detected