|
@ -0,0 +1,36 @@ |
|
|
|
|
|
package chapters |
|
|
|
|
|
|
|
|
|
|
|
import ( |
|
|
|
|
|
"git.aiterp.net/rpdata/api/internal/store" |
|
|
|
|
|
"git.aiterp.net/rpdata/api/models" |
|
|
|
|
|
"github.com/globalsign/mgo" |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
var collection *mgo.Collection |
|
|
|
|
|
|
|
|
|
|
|
func find(query interface{}) (models.Chapter, error) { |
|
|
|
|
|
chapter := models.Chapter{} |
|
|
|
|
|
err := collection.Find(query).One(&chapter) |
|
|
|
|
|
|
|
|
|
|
|
return chapter, err |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func list(query interface{}) ([]models.Chapter, error) { |
|
|
|
|
|
chapters := make([]models.Chapter, 0, 8) |
|
|
|
|
|
err := collection.Find(query).Sort("createdDate").All(&chapters) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return nil, err |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return chapters, nil |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func init() { |
|
|
|
|
|
store.HandleInit(func(db *mgo.Database) { |
|
|
|
|
|
collection = db.C("story.chapters") |
|
|
|
|
|
|
|
|
|
|
|
collection.EnsureIndexKey("storyId") |
|
|
|
|
|
collection.EnsureIndexKey("author") |
|
|
|
|
|
collection.EnsureIndexKey("createdDate") |
|
|
|
|
|
}) |
|
|
|
|
|
} |