models: Changed change logging system to be allow for better querying in the future.
the build was successful

This commit is contained in:
2018-10-28 12:18:17 +01:00
parent 9affdbd20e
commit cee370c2ac
13 changed files with 224 additions and 25 deletions
+1
View File
@@ -18,6 +18,7 @@ func init() {
collection.EnsureIndexKey("date")
collection.EnsureIndexKey("author")
collection.EnsureIndexKey("keys")
err := collection.EnsureIndex(mgo.Index{
Name: "expiry",
+10 -2
View File
@@ -8,8 +8,8 @@ import (
"git.aiterp.net/rpdata/api/models"
)
// Submit a change to the database
func Submit(model, op, author string, objects ...interface{}) (models.Change, error) {
// Submit a change to the database. The objects may be any supported model, or arrays.
func Submit(model, op, author string, listed bool, keys []models.ChangeKey, objects ...interface{}) (models.Change, error) {
submitMutex.Lock()
defer submitMutex.Unlock()
@@ -24,16 +24,24 @@ func Submit(model, op, author string, objects ...interface{}) (models.Change, er
Date: time.Now(),
Op: op,
Author: author,
Keys: keys,
Listed: listed,
}
for _, object := range objects {
switch object := object.(type) {
case models.Log:
change.Logs = append(change.Logs, object)
case []models.Log:
change.Logs = append(change.Logs, object...)
case models.Character:
change.Characters = append(change.Characters, object)
case []models.Character:
change.Characters = append(change.Characters, object...)
case models.Post:
change.Posts = append(change.Posts, object)
case []models.Post:
change.Posts = append(change.Posts, object...)
}
}