db methods
This commit is contained in:
parent
98801edbc0
commit
6b367dbd7a
16
crud.go
16
crud.go
@ -27,7 +27,7 @@ func (e *ErrorWithStack) Stack() string {
|
||||
}
|
||||
|
||||
// CreateDocument creates a document from specified model
|
||||
func CreateDocument(db *Database, m ModelInterface) error {
|
||||
func (db *Database) CreateDocument(m ModelInterface) error {
|
||||
m.PrepareInsert()
|
||||
|
||||
c := db.C(GetCollectionName(m))
|
||||
@ -37,7 +37,7 @@ func CreateDocument(db *Database, m ModelInterface) error {
|
||||
}
|
||||
|
||||
// ReadDocument gets one document via its id
|
||||
func ReadDocument(db *Database, m ModelInterface, selector bson.M) error {
|
||||
func (db *Database) ReadDocument(m ModelInterface, selector bson.M) error {
|
||||
c := db.C(GetCollectionName(m))
|
||||
|
||||
q := c.FindId(m.GetID())
|
||||
@ -136,7 +136,7 @@ func idToObjectID(filter interface{}) {
|
||||
}
|
||||
|
||||
// ReadCollection gets the filtered collection of the model
|
||||
func ReadCollection(db *Database, results interface{}, filter bson.M, selector bson.M, offset int, limit int, sort []string, pipelineModifier PipelineModifierFunction) (err error) {
|
||||
func (db *Database) ReadCollection(results interface{}, filter bson.M, selector bson.M, offset int, limit int, sort []string, pipelineModifier PipelineModifierFunction) (err error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
err = &ErrorWithStack{Message: fmt.Sprintf("%v", r), StackTrace: string(debug.Stack())}
|
||||
@ -243,7 +243,7 @@ func ReadCollection(db *Database, results interface{}, filter bson.M, selector b
|
||||
}
|
||||
|
||||
// ReadCollectionCount gets the count of elements in filtered collection
|
||||
func ReadCollectionCount(db *Database, m ModelInterface, filter bson.M) (count int, err error) {
|
||||
func (db *Database) ReadCollectionCount(m ModelInterface, filter bson.M) (count int, err error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
err = fmt.Errorf("%v", r)
|
||||
@ -255,7 +255,7 @@ func ReadCollectionCount(db *Database, m ModelInterface, filter bson.M) (count i
|
||||
}
|
||||
|
||||
// UpdateDocument updates a document from specified model
|
||||
func UpdateDocument(db *Database, m ModelInterface, changes bson.M) error {
|
||||
func (db *Database) UpdateDocument(m ModelInterface, changes bson.M) error {
|
||||
m.PrepareUpdate()
|
||||
changes["updateTime"] = time.Now()
|
||||
|
||||
@ -266,7 +266,7 @@ func UpdateDocument(db *Database, m ModelInterface, changes bson.M) error {
|
||||
}
|
||||
|
||||
// UpsertDocument updates a document from specified model or inserts it, of not found
|
||||
func UpsertDocument(db *Database, m ModelInterface, changes bson.M) error {
|
||||
func (db *Database) UpsertDocument(m ModelInterface, changes bson.M) error {
|
||||
m.PrepareUpdate()
|
||||
changes["updateTime"] = time.Now()
|
||||
|
||||
@ -277,7 +277,7 @@ func UpsertDocument(db *Database, m ModelInterface, changes bson.M) error {
|
||||
}
|
||||
|
||||
// DeleteDocument deletes one document via its id
|
||||
func DeleteDocument(db *Database, m ModelInterface) error {
|
||||
func (db *Database) DeleteDocument(m ModelInterface) error {
|
||||
c := db.C(GetCollectionName(m))
|
||||
|
||||
err := c.RemoveId(m.GetID())
|
||||
@ -286,7 +286,7 @@ func DeleteDocument(db *Database, m ModelInterface) error {
|
||||
}
|
||||
|
||||
// DeleteDocuments deletes documents found by filter
|
||||
func DeleteDocuments(db *Database, m ModelInterface, filter bson.M) (removed int, err error) {
|
||||
func (db *Database) DeleteDocuments(m ModelInterface, filter bson.M) (removed int, err error) {
|
||||
c := db.C(GetCollectionName(m))
|
||||
|
||||
info, err := c.RemoveAll(filter)
|
||||
|
@ -8,7 +8,7 @@ import (
|
||||
)
|
||||
|
||||
// Lookup extends results with data for inline structs
|
||||
func Lookup(db *Database, structField string, results interface{}, selector bson.M) error {
|
||||
func (db *Database) Lookup(structField string, results interface{}, selector bson.M) error {
|
||||
|
||||
t := reflect.TypeOf(results)
|
||||
v := reflect.ValueOf(results)
|
||||
@ -122,7 +122,7 @@ func Lookup(db *Database, structField string, results interface{}, selector bson
|
||||
return fmt.Errorf("ID type in objects struct %+v is not bson.ObjectId", fieldType)
|
||||
}
|
||||
|
||||
err := ReadCollection(db, objectResults, sQuery, selector, 0, 0, nil, nil)
|
||||
err := db.ReadCollection(objectResults, sQuery, selector, 0, 0, nil, nil)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
2
setup.go
2
setup.go
@ -9,7 +9,7 @@ import (
|
||||
)
|
||||
|
||||
// EnsureIndex ensured mongodb index reflecting model struct index tag
|
||||
func EnsureIndex(db *Database, m ModelInterface) error {
|
||||
func (db *Database) EnsureIndex(m ModelInterface) error {
|
||||
colName := GetCollectionName(m)
|
||||
col := db.C(colName)
|
||||
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
)
|
||||
|
||||
// ValidateObject validates object via validator tag and custom method
|
||||
func ValidateObject(db *Database, m ModelInterface, changes bson.M) error {
|
||||
func (db *Database) ValidateObject(m ModelInterface, changes bson.M) error {
|
||||
// first validate via struct tag
|
||||
validator := validator.New(&validator.Config{
|
||||
TagName: "validator",
|
||||
|
Loading…
Reference in New Issue
Block a user