43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package arn
|
|
|
|
import "github.com/aerogo/nano"
|
|
|
|
// ClientErrorReport saves JavaScript errors that happen in web clients like browsers.
|
|
type ClientErrorReport struct {
|
|
Message string `json:"message"`
|
|
Stack string `json:"stack"`
|
|
FileName string `json:"fileName"`
|
|
LineNumber int `json:"lineNumber"`
|
|
ColumnNumber int `json:"columnNumber"`
|
|
|
|
hasID
|
|
hasCreator
|
|
}
|
|
|
|
// StreamClientErrorReports returns a stream of all client error reports.
|
|
func StreamClientErrorReports() <-chan *ClientErrorReport {
|
|
channel := make(chan *ClientErrorReport, nano.ChannelBufferSize)
|
|
|
|
go func() {
|
|
for obj := range DB.All("ClientErrorReport") {
|
|
channel <- obj.(*ClientErrorReport)
|
|
}
|
|
|
|
close(channel)
|
|
}()
|
|
|
|
return channel
|
|
}
|
|
|
|
// AllClientErrorReports returns a slice of all client error reports.
|
|
func AllClientErrorReports() []*ClientErrorReport {
|
|
all := make([]*ClientErrorReport, 0, DB.Collection("ClientErrorReport").Count())
|
|
stream := StreamClientErrorReports()
|
|
|
|
for obj := range stream {
|
|
all = append(all, obj)
|
|
}
|
|
|
|
return all
|
|
}
|