summaryrefslogtreecommitdiff
path: root/internal/pb
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2025-02-22 09:59:10 -0500
committerBenjamin Chausse <benjamin@chausse.xyz>2025-02-22 09:59:10 -0500
commitf36f77472a82d6ebfac153aed6d17f154ae239a6 (patch)
treed749ecc2ebf86a39b15ac3026d3e100d0276442b /internal/pb
parent2cb9e5fe823391c09a99424138192d0fbec727af (diff)
Good foundations
Diffstat (limited to 'internal/pb')
-rw-r--r--internal/pb/mutate_admin.go20
-rw-r--r--internal/pb/mutate_user.go39
-rw-r--r--internal/pb/query_admin.go1
-rw-r--r--internal/pb/query_user.go19
-rw-r--r--internal/pb/server.go47
5 files changed, 126 insertions, 0 deletions
diff --git a/internal/pb/mutate_admin.go b/internal/pb/mutate_admin.go
new file mode 100644
index 0000000..23710d5
--- /dev/null
+++ b/internal/pb/mutate_admin.go
@@ -0,0 +1,20 @@
+package pb
+
+import (
+ "context"
+
+ m "github.com/ChausseBenjamin/rafta/pkg/model"
+ "google.golang.org/protobuf/types/known/emptypb"
+)
+
+func (s *AdminServer) DeleteUser(ctx context.Context, id *m.UUID) (*emptypb.Empty, error) {
+ return nil, nil
+}
+
+func (s *AdminServer) UpdateUser(ctx context.Context, val *m.User) (*emptypb.Empty, error) {
+ return nil, nil
+}
+
+func (s *AdminServer) CreateUser(ctx context.Context, val *m.UserCreationMsg) (*m.User, error) {
+ return nil, nil
+}
diff --git a/internal/pb/mutate_user.go b/internal/pb/mutate_user.go
new file mode 100644
index 0000000..d4bc3ae
--- /dev/null
+++ b/internal/pb/mutate_user.go
@@ -0,0 +1,39 @@
+package pb
+
+import (
+ "context"
+
+ "github.com/ChausseBenjamin/rafta/internal/util"
+ m "github.com/ChausseBenjamin/rafta/pkg/model"
+ "google.golang.org/protobuf/types/known/emptypb"
+)
+
+func (s *UserServer) NewUser(ctx context.Context, val *m.UserData) (*m.User, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "NewUser")
+ return nil, nil
+}
+
+func (s *UserServer) UpdateUserInfo(ctx context.Context, val *m.User) (*emptypb.Empty, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "UpdateUserInfo")
+ return nil, nil
+}
+
+func (s *UserServer) DeleteUser(ctx context.Context, val *emptypb.Empty) (*emptypb.Empty, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "DeleteUser")
+ return nil, nil
+}
+
+func (s *UserServer) DeleteTask(ctx context.Context, val *m.UUID) (*emptypb.Empty, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "DeleteTask")
+ return nil, nil
+}
+
+func (s *UserServer) UpdateTask(ctx context.Context, val *m.TaskUpdate) (*emptypb.Empty, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "UpdateTask")
+ return nil, nil
+}
+
+func (s *UserServer) CreateTask(ctx context.Context, val *m.TaskData) (*m.Task, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "CreateTask")
+ return nil, nil
+}
diff --git a/internal/pb/query_admin.go b/internal/pb/query_admin.go
new file mode 100644
index 0000000..2f94aef
--- /dev/null
+++ b/internal/pb/query_admin.go
@@ -0,0 +1 @@
+package pb
diff --git a/internal/pb/query_user.go b/internal/pb/query_user.go
new file mode 100644
index 0000000..356a9c7
--- /dev/null
+++ b/internal/pb/query_user.go
@@ -0,0 +1,19 @@
+package pb
+
+import (
+ "context"
+
+ "github.com/ChausseBenjamin/rafta/internal/util"
+ m "github.com/ChausseBenjamin/rafta/pkg/model"
+ "google.golang.org/protobuf/types/known/emptypb"
+)
+
+func (s *UserServer) GetTask(ctx context.Context, id *m.UUID) (*m.Task, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "GetTask")
+ return nil, nil
+}
+
+func (s *UserServer) GetUserInfo(ctx context.Context, _ *emptypb.Empty) (*m.User, error) {
+ ctx = context.WithValue(ctx, util.ProtoMethodKey, "GetUserInfo")
+ return nil, nil
+}
diff --git a/internal/pb/server.go b/internal/pb/server.go
new file mode 100644
index 0000000..0e8ecb7
--- /dev/null
+++ b/internal/pb/server.go
@@ -0,0 +1,47 @@
+package pb
+
+import (
+ "context"
+ "errors"
+ "log/slog"
+
+ "github.com/ChausseBenjamin/rafta/internal/db"
+ "github.com/ChausseBenjamin/rafta/internal/intercept"
+ m "github.com/ChausseBenjamin/rafta/pkg/model"
+ "google.golang.org/grpc"
+)
+
+var ErrOutOfBoundsPort = errors.New("given port is out of bounds (1024-65535)")
+
+// Implements ComsServer interface
+type UserServer struct {
+ db *db.Store
+ m.UnimplementedRaftaUserServer
+}
+
+type AdminServer struct {
+ db *db.Store
+ m.UnimplementedRaftaAdminServer
+}
+
+func NewUserServer(store *db.Store) *UserServer {
+ return &UserServer{db: store}
+}
+
+func NewAdminServer(store *db.Store) *AdminServer {
+ return &AdminServer{db: store}
+}
+
+// Setup creates a new gRPC with both services
+// and starts listening on the given port
+func Setup(ctx context.Context, store *db.Store) (*grpc.Server, error) {
+ slog.DebugContext(ctx, "Configuring gRPC server")
+ server := grpc.NewServer(grpc.ChainUnaryInterceptor(
+ intercept.Tagging,
+ ))
+
+ m.RegisterRaftaUserServer(server, NewUserServer(store))
+ m.RegisterRaftaAdminServer(server, NewAdminServer(store))
+
+ return server, nil
+}