2 Commits

Author SHA1 Message Date
7dd238342c encapsulate ErrNotFound 2022-02-09 15:53:37 +01:00
115c288a0b encapsulate ErrNotFound 2022-02-09 15:49:15 +01:00

View File

@@ -6,6 +6,10 @@ import (
mgo "gopkg.in/mgo.v2" mgo "gopkg.in/mgo.v2"
) )
var (
ErrNotFound = errors.New("not found")
)
type Session struct { type Session struct {
session *mgo.Session session *mgo.Session
} }
@@ -109,7 +113,11 @@ func (q *Query) Select(selector interface{}) *Query {
} }
func (q *Query) One(result interface{}) error { func (q *Query) One(result interface{}) error {
return q.query.One(result) err := q.query.One(result)
if err == mgo.ErrNotFound {
err = ErrNotFound
}
return err
} }
func (q *Query) Sort(fields ...string) *Query { func (q *Query) Sort(fields ...string) *Query {
@@ -128,11 +136,19 @@ func (q *Query) Limit(n int) *Query {
} }
func (q *Query) All(result interface{}) error { func (q *Query) All(result interface{}) error {
return q.query.All(result) err := q.query.All(result)
if err == mgo.ErrNotFound {
err = ErrNotFound
}
return err
} }
func (q *Query) Count() (int, error) { func (q *Query) Count() (int, error) {
return q.query.Count() c, err := q.query.Count()
if err == mgo.ErrNotFound {
err = ErrNotFound
}
return c, err
} }
type Index struct { type Index struct {
@@ -155,7 +171,11 @@ type Pipe struct {
} }
func (p *Pipe) All(result interface{}) error { func (p *Pipe) All(result interface{}) error {
return p.pipe.All(result) err := p.pipe.All(result)
if err == mgo.ErrNotFound {
err = ErrNotFound
}
return err
} }
func (c *Collection) Pipe(pipeline interface{}) *Pipe { func (c *Collection) Pipe(pipeline interface{}) *Pipe {