The new logbot, not committed from the wrong terminal window this time.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

61 lines
1.1 KiB

package changes
import (
"context"
"encoding/json"
"time"
"git.aiterp.net/rpdata/logbot3/internal/api"
"git.aiterp.net/rpdata/logbot3/internal/models"
)
// The Filter for List.
type Filter struct {
Keys []models.ChangeKey `json:"keys,omitempty"`
EarliestDate *time.Time `json:"earliestDate,omitempty"`
Limit int `json:"limit,omitempty"`
}
// List lists all changes according to the filter.
func List(ctx context.Context, filter *Filter) ([]models.Change, error) {
data, err := api.Global().Query(ctx, listGQL, map[string]interface{}{"filter": filter}, nil)
if err != nil {
return nil, err
}
res := listResult{}
err = json.Unmarshal(data, &res)
return res.Changes, err
}
type listResult struct {
Changes []models.Change `json:"changes"`
}
var listGQL = `
query ListChanges($filter:ChangesFilter) {
changes(filter:$filter) {
id
model
op
author
listed
date
keys {
model
id
}
objects {
__typename
...on Channel {
name
logged
hub
eventName
locationName
}
}
}
}
`