diff --git a/dbinterface.go b/dbinterface.go index 7185806..c244a0c 100644 --- a/dbinterface.go +++ b/dbinterface.go @@ -5,9 +5,13 @@ import ( "gopkg.in/mgo.v2/bson" ) +type Connection interface { + Close() + NewSession() Session +} + type Session interface { Close() - Copy() Session DB(name string) Database } diff --git a/go.mod b/go.mod index 7548007..bef1144 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module gitbase.de/gopackage/mgoapi/v2 go 1.16 require ( - gitbase.de/gopackage/mgocrud/v2 v2.0.5 + gitbase.de/gopackage/mgocrud/v2 v2.0.8 github.com/dgrijalva/jwt-go v3.2.0+incompatible github.com/gin-gonic/gin v1.6.3 gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 diff --git a/go.sum b/go.sum index 21f6b56..cd10766 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -gitbase.de/gopackage/mgocrud/v2 v2.0.5 h1:sgRJXw0ZvNDtsjmIhNDoe/8pO0Bed313aXFX6SlW6fQ= -gitbase.de/gopackage/mgocrud/v2 v2.0.5/go.mod h1:eAIqxjo60/nP/S+YA25SBLQZ98WUrHwpvjE7Zl+ewTM= +gitbase.de/gopackage/mgocrud/v2 v2.0.8 h1:129q3/5c4kFB0WnVZZXd+jhpR5FYjYjzmcoZxLPPjiY= +gitbase.de/gopackage/mgocrud/v2 v2.0.8/go.mod h1:eAIqxjo60/nP/S+YA25SBLQZ98WUrHwpvjE7Zl+ewTM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/handler.go b/handler.go index a604144..acc12b8 100644 --- a/handler.go +++ b/handler.go @@ -15,7 +15,7 @@ import ( func (api *API) collectionGetOneHandler(m mgocrud.ModelInterface) gin.HandlerFunc { return func(c *gin.Context) { - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) @@ -79,7 +79,7 @@ func (api *API) collectionGetHandler(m mgocrud.ModelInterface) gin.HandlerFunc { results := x.Interface() - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) @@ -205,7 +205,7 @@ func (api *API) collectionPostHandler(m mgocrud.ModelInterface) gin.HandlerFunc return } - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) @@ -257,7 +257,7 @@ func (api *API) collectionPostHandler(m mgocrud.ModelInterface) gin.HandlerFunc func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc { return func(c *gin.Context) { - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) @@ -399,7 +399,7 @@ func (api *API) collectionPutHandler(m mgocrud.ModelInterface) gin.HandlerFunc { func (api *API) collectionDeleteHandler(m mgocrud.ModelInterface) gin.HandlerFunc { return func(c *gin.Context) { - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) diff --git a/login.go b/login.go index b1b0776..adc3408 100644 --- a/login.go +++ b/login.go @@ -26,7 +26,7 @@ func (api *API) loginPostHandler(m LoginModel) func(c *gin.Context) { return } - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName) diff --git a/register.go b/register.go index e2e2fe5..5e3e72b 100644 --- a/register.go +++ b/register.go @@ -7,7 +7,7 @@ import ( // API is wrapper for one RouterGroup and mgo DB type API struct { - DBSession Session + DBConnection Connection DBName string routerGroup *gin.RouterGroup jwtSecret []byte @@ -22,11 +22,11 @@ type Context struct { } // New returns new instance of the API -func New(session Session, dbname string, routerGroup *gin.RouterGroup) *API { +func New(connection Connection, dbname string, routerGroup *gin.RouterGroup) *API { return &API{ - DBSession: session, - DBName: dbname, - routerGroup: routerGroup, + DBConnection: connection, + DBName: dbname, + routerGroup: routerGroup, } } @@ -37,7 +37,7 @@ func (api *API) RegisterModel(m mgocrud.ModelInterface) { modelRegistry = append(modelRegistry, m) - session := api.DBSession.Copy() + session := api.DBConnection.NewSession() defer session.Close() db := session.DB(api.DBName)