aboutsummaryrefslogtreecommitdiff
path: root/backend/internal/server
diff options
context:
space:
mode:
authorGravatar Anshul Gupta <ansg191@anshulg.com> 2024-08-07 18:56:01 -0700
committerGravatar GitHub <noreply@github.com> 2024-08-07 18:56:01 -0700
commit08993e2f8497341079010d3d06361c99492c4c07 (patch)
treec65d6d571c928410faace1fa51c2ea3f49fce003 /backend/internal/server
parent3de4ebb7560851ccbefe296c197456fe80c22901 (diff)
parentb8aef1a7fb24815c7d93bc30c7b289b4f5896779 (diff)
downloadibd-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.go4
-rw-r--r--backend/internal/server/idb/user/v1/user.go29
-rw-r--r--backend/internal/server/server.go7
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)