diff options
author | Benjamin Chausse <benjamin@chausse.xyz> | 2025-02-22 09:59:10 -0500 |
---|---|---|
committer | Benjamin Chausse <benjamin@chausse.xyz> | 2025-02-22 09:59:10 -0500 |
commit | f36f77472a82d6ebfac153aed6d17f154ae239a6 (patch) | |
tree | d749ecc2ebf86a39b15ac3026d3e100d0276442b /internal/pb | |
parent | 2cb9e5fe823391c09a99424138192d0fbec727af (diff) |
Good foundations
Diffstat (limited to 'internal/pb')
-rw-r--r-- | internal/pb/mutate_admin.go | 20 | ||||
-rw-r--r-- | internal/pb/mutate_user.go | 39 | ||||
-rw-r--r-- | internal/pb/query_admin.go | 1 | ||||
-rw-r--r-- | internal/pb/query_user.go | 19 | ||||
-rw-r--r-- | internal/pb/server.go | 47 |
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 +} |