diff options
Diffstat (limited to 'backend/internal/server')
-rw-r--r-- | backend/internal/server/idb/user/v1/user.go | 25 | ||||
-rw-r--r-- | backend/internal/server/server.go | 4 |
2 files changed, 25 insertions, 4 deletions
diff --git a/backend/internal/server/idb/user/v1/user.go b/backend/internal/server/idb/user/v1/user.go index 9550b06..8e5f16a 100644 --- a/backend/internal/server/idb/user/v1/user.go +++ b/backend/internal/server/idb/user/v1/user.go @@ -6,6 +6,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/mennanov/fmutils" "google.golang.org/grpc/codes" @@ -16,11 +17,12 @@ import ( type Server struct { pb.UnimplementedUserServiceServer - db database.UserStore + db database.UserStore + client *ibd.Client } -func New(db database.UserStore) *Server { - return &Server{db: db} +func New(db database.UserStore, client *ibd.Client) *Server { + return &Server{db: db, client: client} } func (u *Server) CreateUser(ctx context.Context, request *pb.CreateUserRequest) (*pb.CreateUserResponse, error) { @@ -92,3 +94,20 @@ func (u *Server) UpdateUser(ctx context.Context, request *pb.UpdateUserRequest) User: newUser, }, nil } + +func (u *Server) CheckIBDUsername(ctx context.Context, req *pb.CheckIBDUsernameRequest) (*pb.CheckIBDUsernameResponse, error) { + username := req.IbdUsername + if username == "" { + return nil, status.Errorf(codes.InvalidArgument, "username cannot be empty") + } + + // Check if the username exists + exists, err := u.client.CheckIBDUsername(ctx, username) + if err != nil { + return nil, status.Errorf(codes.Internal, "unable to check username: %v", err) + } + + return &pb.CheckIBDUsernameResponse{ + Exists: exists, + }, nil +} diff --git a/backend/internal/server/server.go b/backend/internal/server/server.go index 133deb7..c46a629 100644 --- a/backend/internal/server/server.go +++ b/backend/internal/server/server.go @@ -10,6 +10,7 @@ import ( spb "github.com/ansg191/ibd-trader-backend/api/gen/idb/stock/v1" 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/leader/manager/ibd/scrape" "github.com/ansg191/ibd-trader-backend/internal/redis/taskqueue" "github.com/ansg191/ibd-trader-backend/internal/server/idb/stock/v1" @@ -31,6 +32,7 @@ func New( port uint16, db database.Database, rClient *redis.Client, + client *ibd.Client, ) (*Server, error) { scrapeQueue, err := taskqueue.New( ctx, @@ -43,7 +45,7 @@ func New( } s := grpc.NewServer() - upb.RegisterUserServiceServer(s, user.New(db)) + upb.RegisterUserServiceServer(s, user.New(db, client)) spb.RegisterStockServiceServer(s, stock.New(db, scrapeQueue)) longrunningpb.RegisterOperationsServer(s, newOperationServer(scrapeQueue)) reflection.Register(s) |