diff options
author | 2024-08-07 18:56:01 -0700 | |
---|---|---|
committer | 2024-08-07 18:56:01 -0700 | |
commit | 08993e2f8497341079010d3d06361c99492c4c07 (patch) | |
tree | c65d6d571c928410faace1fa51c2ea3f49fce003 /backend/internal/server | |
parent | 3de4ebb7560851ccbefe296c197456fe80c22901 (diff) | |
parent | b8aef1a7fb24815c7d93bc30c7b289b4f5896779 (diff) | |
download | ibd-trader-08993e2f8497341079010d3d06361c99492c4c07.tar.gz ibd-trader-08993e2f8497341079010d3d06361c99492c4c07.tar.zst ibd-trader-08993e2f8497341079010d3d06361c99492c4c07.zip |
Merge pull request #1 from ansg191/refactor-database
Diffstat (limited to 'backend/internal/server')
-rw-r--r-- | backend/internal/server/idb/stock/v1/stock.go | 4 | ||||
-rw-r--r-- | backend/internal/server/idb/user/v1/user.go | 29 | ||||
-rw-r--r-- | backend/internal/server/server.go | 7 |
3 files changed, 23 insertions, 17 deletions
diff --git a/backend/internal/server/idb/stock/v1/stock.go b/backend/internal/server/idb/stock/v1/stock.go index d30bde3..8afc2b1 100644 --- a/backend/internal/server/idb/stock/v1/stock.go +++ b/backend/internal/server/idb/stock/v1/stock.go @@ -22,11 +22,11 @@ const ScrapeOperationPrefix = "scrape" type Server struct { pb.UnimplementedStockServiceServer - db database.StockStore + db database.Executor queue taskqueue.TaskQueue[scrape.TaskInfo] } -func New(db database.StockStore, queue taskqueue.TaskQueue[scrape.TaskInfo]) *Server { +func New(db database.Executor, queue taskqueue.TaskQueue[scrape.TaskInfo]) *Server { return &Server{db: db, queue: queue} } diff --git a/backend/internal/server/idb/user/v1/user.go b/backend/internal/server/idb/user/v1/user.go index c100465..2f32e03 100644 --- a/backend/internal/server/idb/user/v1/user.go +++ b/backend/internal/server/idb/user/v1/user.go @@ -7,6 +7,7 @@ import ( pb "github.com/ansg191/ibd-trader-backend/api/gen/idb/user/v1" "github.com/ansg191/ibd-trader-backend/internal/database" "github.com/ansg191/ibd-trader-backend/internal/ibd" + "github.com/ansg191/ibd-trader-backend/internal/keys" "github.com/mennanov/fmutils" "google.golang.org/grpc/codes" @@ -17,26 +18,28 @@ import ( type Server struct { pb.UnimplementedUserServiceServer - user database.UserStore - cookie database.CookieSource - client *ibd.Client + db database.TransactionExecutor + kms keys.KeyManagementService + keyName string + client *ibd.Client } -func New(userStore database.UserStore, cookieStore database.CookieStore, client *ibd.Client) *Server { +func New(db database.TransactionExecutor, kms keys.KeyManagementService, keyName string, client *ibd.Client) *Server { return &Server{ - user: userStore, - cookie: cookieStore, - client: client, + db: db, + kms: kms, + keyName: keyName, + client: client, } } func (u *Server) CreateUser(ctx context.Context, request *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { - err := u.user.AddUser(ctx, request.Subject) + err := database.AddUser(ctx, u.db, request.Subject) if err != nil { return nil, status.Errorf(codes.Internal, "unable to create user: %v", err) } - user, err := u.user.GetUser(ctx, request.Subject) + user, err := database.GetUser(ctx, u.db, request.Subject) if err != nil { return nil, status.Errorf(codes.Internal, "unable to get user: %v", err) } @@ -51,7 +54,7 @@ func (u *Server) CreateUser(ctx context.Context, request *pb.CreateUserRequest) } func (u *Server) GetUser(ctx context.Context, request *pb.GetUserRequest) (*pb.GetUserResponse, error) { - user, err := u.user.GetUser(ctx, request.Subject) + user, err := database.GetUser(ctx, u.db, request.Subject) if errors.Is(err, database.ErrUserNotFound) { return nil, status.New(codes.NotFound, "user not found").Err() } @@ -88,7 +91,7 @@ func (u *Server) UpdateUser(ctx context.Context, request *pb.UpdateUserRequest) (newUser.IbdPassword != existingUser.IbdPassword || newUser.IbdUsername != existingUser.IbdUsername) { // Update IBD creds - err = u.user.AddIBDCreds(ctx, newUser.Subject, *newUser.IbdUsername, *newUser.IbdPassword) + err = database.AddIBDCreds(ctx, u.db, u.kms, u.keyName, newUser.Subject, *newUser.IbdUsername, *newUser.IbdPassword) if err != nil { return nil, status.Errorf(codes.Internal, "unable to update user: %v", err) } @@ -119,7 +122,7 @@ func (u *Server) CheckIBDUsername(ctx context.Context, req *pb.CheckIBDUsernameR func (u *Server) AuthenticateUser(ctx context.Context, req *pb.AuthenticateUserRequest) (*pb.AuthenticateUserResponse, error) { // Check if user has cookies - cookies, err := u.cookie.GetCookies(ctx, req.Subject, false) + cookies, err := database.GetCookies(ctx, u.db, u.kms, req.Subject, false) if err != nil { return nil, status.Errorf(codes.Internal, "unable to get cookies: %v", err) } @@ -131,7 +134,7 @@ func (u *Server) AuthenticateUser(ctx context.Context, req *pb.AuthenticateUserR // Authenticate user // Get IBD creds - username, password, err := u.user.GetIBDCreds(ctx, req.Subject) + username, password, err := database.GetIBDCreds(ctx, u.db, u.kms, req.Subject) if errors.Is(err, database.ErrIBDCredsNotFound) { return nil, status.New(codes.NotFound, "User has no IDB creds").Err() } diff --git a/backend/internal/server/server.go b/backend/internal/server/server.go index 186d581..c525cfd 100644 --- a/backend/internal/server/server.go +++ b/backend/internal/server/server.go @@ -11,6 +11,7 @@ import ( upb "github.com/ansg191/ibd-trader-backend/api/gen/idb/user/v1" "github.com/ansg191/ibd-trader-backend/internal/database" "github.com/ansg191/ibd-trader-backend/internal/ibd" + "github.com/ansg191/ibd-trader-backend/internal/keys" "github.com/ansg191/ibd-trader-backend/internal/leader/manager/ibd/scrape" "github.com/ansg191/ibd-trader-backend/internal/redis/taskqueue" "github.com/ansg191/ibd-trader-backend/internal/server/idb/stock/v1" @@ -30,9 +31,11 @@ type Server struct { func New( ctx context.Context, port uint16, - db database.Database, + db database.TransactionExecutor, rClient *redis.Client, client *ibd.Client, + kms keys.KeyManagementService, + keyName string, ) (*Server, error) { scrapeQueue, err := taskqueue.New( ctx, @@ -45,7 +48,7 @@ func New( } s := grpc.NewServer() - upb.RegisterUserServiceServer(s, user.New(db, db, client)) + upb.RegisterUserServiceServer(s, user.New(db, kms, keyName, client)) spb.RegisterStockServiceServer(s, stock.New(db, scrapeQueue)) longrunningpb.RegisterOperationsServer(s, newOperationServer(scrapeQueue)) reflection.Register(s) |