Added character service and such.
the build was successful

This commit is contained in:
2019-06-10 17:03:52 +02:00
parent 7b253748fe
commit 2a1423d28f
32 changed files with 1551 additions and 277 deletions
+4
View File
@@ -26,6 +26,10 @@ func One(object interface{}) models.ChangeKey {
id := ""
v := reflect.ValueOf(object)
for v.Kind() == reflect.Ptr {
v = v.Elem()
}
if f := v.FieldByName("ID"); f.Kind() == reflect.String {
id = f.String()
} else if f = v.FieldByName("Name"); f.Kind() == reflect.String {
+16
View File
@@ -55,34 +55,50 @@ func Submit(model, op, author string, listed bool, keys []models.ChangeKey, obje
switch object := object.(type) {
case models.Log:
change.Logs = append(change.Logs, object)
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.Character:
change.Characters = append(change.Characters, object...)
case models.Channel:
change.Channels = append(change.Channels, object)
case *models.Channel:
change.Channels = append(change.Channels, *object)
case []models.Channel:
change.Channels = append(change.Channels, object...)
case models.Post:
change.Posts = append(change.Posts, object)
case *models.Post:
change.Posts = append(change.Posts, *object)
case []models.Post:
change.Posts = append(change.Posts, object...)
case models.Story:
change.Stories = append(change.Stories, object)
case *models.Story:
change.Stories = append(change.Stories, *object)
case []models.Story:
change.Stories = append(change.Stories, object...)
case models.Tag:
change.Tags = append(change.Tags, object)
case *models.Tag:
change.Tags = append(change.Tags, *object)
case []models.Tag:
change.Tags = append(change.Tags, object...)
case models.Chapter:
change.Chapters = append(change.Chapters, object)
case *models.Chapter:
change.Chapters = append(change.Chapters, *object)
case []models.Chapter:
change.Chapters = append(change.Chapters, object...)
case models.Comment:
change.Comments = append(change.Comments, object)
case *models.Comment:
change.Comments = append(change.Comments, *object)
case []models.Comment:
change.Comments = append(change.Comments, object...)
default:
+18 -1
View File
@@ -34,4 +34,21 @@ func (character *Character) HasNick(nick string) bool {
// ChangeObject in GQL.
func (*Character) IsChangeObject() {
panic("this method is a dummy, and so is its caller")
}
}
// CharacterFilter is a filter for character listing.
type CharacterFilter struct {
IDs []string
Nicks []string
Names []string
Author *string
Search *string
Limit int
}
// CharacterUpdate is an update for characters.
type CharacterUpdate struct {
Name *string
ShortName *string
Description *string
}
+1 -1
View File
@@ -63,7 +63,7 @@ func (e TagKind) MarshalGQL(w io.Writer) {
fmt.Fprint(w, "\""+string(e), "\"")
}
// TagFilter is a filter of tags.
// TagFilter is a filter for tag listing.
type TagFilter struct {
Kind *TagKind `bson:"kind,omitempty"`
}
-14
View File
@@ -1,14 +0,0 @@
package tags
import (
"git.aiterp.net/rpdata/api/internal/store"
"github.com/globalsign/mgo"
)
var storyCollection *mgo.Collection
func init() {
store.HandleInit(func(db *mgo.Database) {
storyCollection = db.C("story.stories")
})
}
-26
View File
@@ -1,26 +0,0 @@
package tags
import (
"sort"
"strings"
"git.aiterp.net/rpdata/api/models"
"github.com/globalsign/mgo/bson"
)
// List lists all tags
func List() ([]models.Tag, error) {
tags := make([]models.Tag, 0, 64)
err := storyCollection.Find(bson.M{"listed": true, "tags": bson.M{"$ne": nil}}).Distinct("tags", &tags)
sort.Slice(tags, func(i, j int) bool {
kindCmp := strings.Compare(string(tags[i].Kind), string(tags[j].Kind))
if kindCmp != 0 {
return kindCmp < 0
}
return strings.Compare(tags[i].Name, tags[j].Name) < 0
})
return tags, err
}