From a09b5eb2a787fc6671ea1d2452452b1e58df6a96 Mon Sep 17 00:00:00 2001 From: Mike Crute Date: Thu, 3 Aug 2023 13:48:28 -0700 Subject: Migrate MongoDbBasicStore to golib version --- app/models/auth_session_mongodb.go | 4 +-- cmd/register/register.go | 5 ++- cmd/web/server.go | 7 ++-- db/mongodb_store.go | 72 -------------------------------------- go.mod | 2 +- go.sum | 4 +-- 6 files changed, 10 insertions(+), 84 deletions(-) delete mode 100644 db/mongodb_store.go diff --git a/app/models/auth_session_mongodb.go b/app/models/auth_session_mongodb.go index fc5f5dd..a5f0537 100644 --- a/app/models/auth_session_mongodb.go +++ b/app/models/auth_session_mongodb.go @@ -4,14 +4,14 @@ import ( "context" "time" - "code.crute.us/mcrute/ssh-proxy/db" + "code.crute.us/mcrute/golib/db/mongodb/v2" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/primitive" ) type AuthSessionStoreMongodb struct { - *db.MongoDbBasicStore[*AuthSession] + *mongodb.MongoDbBasicStore[*AuthSession] } var _ AuthSessionStore = (*AuthSessionStoreMongodb)(nil) diff --git a/cmd/register/register.go b/cmd/register/register.go index fdd083c..c00b54b 100644 --- a/cmd/register/register.go +++ b/cmd/register/register.go @@ -10,7 +10,6 @@ import ( glecho "code.crute.us/mcrute/golib/echo" "code.crute.us/mcrute/ssh-proxy/app" "code.crute.us/mcrute/ssh-proxy/app/models" - "code.crute.us/mcrute/ssh-proxy/db" "github.com/spf13/cobra" ) @@ -43,13 +42,13 @@ func registerMain(cfg app.Config, username string) { log.Fatalf("Error connecting to mongodb: %s", err) } - userStore := &db.MongoDbBasicStore[*models.User]{ + userStore := &mongodb.MongoDbBasicStore[*models.User]{ Db: mongo, CollectionName: "users", } authSessionStore := &models.AuthSessionStoreMongodb{ - MongoDbBasicStore: &db.MongoDbBasicStore[*models.AuthSession]{ + MongoDbBasicStore: &mongodb.MongoDbBasicStore[*models.AuthSession]{ Db: mongo, CollectionName: "oauth_sessions", }, diff --git a/cmd/web/server.go b/cmd/web/server.go index 83f4fc8..19c1bb7 100644 --- a/cmd/web/server.go +++ b/cmd/web/server.go @@ -14,7 +14,6 @@ import ( "code.crute.us/mcrute/ssh-proxy/app/controllers" "code.crute.us/mcrute/ssh-proxy/app/middleware" "code.crute.us/mcrute/ssh-proxy/app/models" - "code.crute.us/mcrute/ssh-proxy/db" "code.crute.us/mcrute/golib/cli" "code.crute.us/mcrute/golib/clients/autocert/v2" @@ -127,18 +126,18 @@ func webMain(cfg app.Config, embeddedTemplates, embeddedClients fs.FS, appVersio log.Fatalf("Error creating session store: %s", err) } - userStore := &db.MongoDbBasicStore[*models.User]{ + userStore := &mongodb.MongoDbBasicStore[*models.User]{ Db: mongo, CollectionName: "users", } - oauthClientStore := &db.MongoDbBasicStore[*models.OauthClient]{ + oauthClientStore := &mongodb.MongoDbBasicStore[*models.OauthClient]{ Db: mongo, CollectionName: "oauth_clients", } authSessionStore := &models.AuthSessionStoreMongodb{ - MongoDbBasicStore: &db.MongoDbBasicStore[*models.AuthSession]{ + MongoDbBasicStore: &mongodb.MongoDbBasicStore[*models.AuthSession]{ Db: mongo, CollectionName: "oauth_sessions", }, diff --git a/db/mongodb_store.go b/db/mongodb_store.go deleted file mode 100644 index 2822de4..0000000 --- a/db/mongodb_store.go +++ /dev/null @@ -1,72 +0,0 @@ -package db - -import ( - "context" - "time" - - "code.crute.us/mcrute/golib/db/mongodb/v2" - "go.mongodb.org/mongo-driver/bson" - "go.mongodb.org/mongo-driver/bson/primitive" -) - -type MongoDbBasicModel interface { - MarkDeleted(time.Time) - RecordId() string -} - -type MongoDbBasicStore[T MongoDbBasicModel] struct { - Db *mongodb.Mongo - CollectionName string -} - -func (s *MongoDbBasicStore[T]) List(ctx context.Context) ([]T, error) { - out := []T{} - - filter := bson.M{} - filter["deleted"] = primitive.Null{} - - if err := s.Db.FindAllByFilter(ctx, s.CollectionName, filter, &out); err != nil { - return nil, err - } - - return out, nil -} - -func (s *MongoDbBasicStore[T]) ListAll(ctx context.Context) ([]T, error) { - out := []T{} - - if err := s.Db.FindAllByFilter(ctx, s.CollectionName, bson.M{}, &out); err != nil { - return nil, err - } - - return out, nil -} - -func (s *MongoDbBasicStore[T]) Get(ctx context.Context, name string) (T, error) { - var out T - - filter := bson.M{} - filter["_id"] = name - - if err := s.Db.FindOneByFilter(ctx, s.CollectionName, filter, &out); err != nil { - return out, err - } - - return out, nil -} - -func (s *MongoDbBasicStore[T]) Upsert(ctx context.Context, m T) error { - if err := s.Db.ReplaceOneById(ctx, s.CollectionName, m.RecordId(), m); err != nil { - return err - } - return nil -} - -func (s *MongoDbBasicStore[T]) Delete(ctx context.Context, m T) error { - k, err := s.Get(ctx, m.RecordId()) - if err != nil { - return err - } - k.MarkDeleted(time.Now()) - return s.Upsert(ctx, k) -} diff --git a/go.mod b/go.mod index 5c0d23f..95c9e8d 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( code.crute.us/mcrute/golib/cli v0.2.2 code.crute.us/mcrute/golib/clients/autocert/v2 v2.2.0 code.crute.us/mcrute/golib/clients/netbox/v3 v3.2.0 - code.crute.us/mcrute/golib/db/mongodb/v2 v2.0.0 + code.crute.us/mcrute/golib/db/mongodb/v2 v2.1.0 code.crute.us/mcrute/golib/echo v0.9.4 code.crute.us/mcrute/golib/secrets v0.4.0 github.com/go-webauthn/webauthn v0.8.4 diff --git a/go.sum b/go.sum index af8767b..5c20a64 100644 --- a/go.sum +++ b/go.sum @@ -42,8 +42,8 @@ code.crute.us/mcrute/golib/clients/netbox v0.1.0 h1:7ae676WtINm2oSLoUw1ERIZ2ndLD code.crute.us/mcrute/golib/clients/netbox v0.1.0/go.mod h1:csRsnmAwenAz8Pbo7CcQTWzn6uaXadELIdB81JxsacY= code.crute.us/mcrute/golib/clients/netbox/v3 v3.2.0 h1:g3+vdaUeoVg+Qx++bGi2j2AVBOFpRC6b+uTGw6oM9wc= code.crute.us/mcrute/golib/clients/netbox/v3 v3.2.0/go.mod h1:Wjh2iiFDkRuYN1TBgYrRpwT5Xp8i+2+TWJrbdG3JWWk= -code.crute.us/mcrute/golib/db/mongodb/v2 v2.0.0 h1:v4AYsbesoDeAMMbwS43WzqywNm0w09yKs6731DrdWVY= -code.crute.us/mcrute/golib/db/mongodb/v2 v2.0.0/go.mod h1:3dFJwm2MtCb312eHdHnK/w8D1lwgCeewa/2hztw89kE= +code.crute.us/mcrute/golib/db/mongodb/v2 v2.1.0 h1:Qw5g1R6vaJluHJoufNj+tjdLoHH0Z6TrNKDLK3h1hbE= +code.crute.us/mcrute/golib/db/mongodb/v2 v2.1.0/go.mod h1:xoML+iNm/O3OgRJ5Uaie+SAEvczR/LrvCMsZm6MWiPI= code.crute.us/mcrute/golib/echo v0.9.4 h1:C2z7RRIksT2K0Fr4LZHGISRMXooNT1qaEV9NZ7LK5fs= code.crute.us/mcrute/golib/echo v0.9.4/go.mod h1:mcmhqsSWD/+ECdrd0Sh9u9XGtukXdLPVHc88sKg/gJo= code.crute.us/mcrute/golib/secrets v0.4.0 h1:tZzQEOnJshDGuzvvr0n0BMWZbu3ZMB5QRqIDa4PwE3U= -- cgit v1.2.3