GraphQL API and utilities for the rpdata project
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.
|
|
package changes
import ( "log" "sync" "time"
"git.aiterp.net/rpdata/api/internal/store" "git.aiterp.net/rpdata/api/models" "github.com/globalsign/mgo" "github.com/globalsign/mgo/bson" )
var collection *mgo.Collection var submitMutex sync.Mutex
func list(query bson.M, limit int) ([]models.Change, error) { changes := make([]models.Change, 0, 64) err := collection.Find(query).Limit(limit).Sort("-date").All(&changes)
return changes, err }
func init() { store.HandleInit(func(db *mgo.Database) { collection = db.C("common.changes")
collection.EnsureIndexKey("date") collection.EnsureIndexKey("author") collection.EnsureIndexKey("keys")
err := collection.EnsureIndex(mgo.Index{ Name: "expiry", Key: []string{"date"}, ExpireAfter: time.Hour * 2400, // 100 days
}) if err != nil { log.Fatalln(err) } }) }
|