package transport import ( "context" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" "ms-auth/internal/lib" "ms-auth/internal/models" userv1 "ms-auth/pkg/go/gen/user/v1" ) func (s *AuthServer) CreateUser(ctx context.Context, req *userv1.CreateUserRequest) (*userv1.CreateUserResponse, error) { user := req.GetUser() if user == nil { return nil, status.Errorf(codes.Unknown, "") // FIXME } id, err := s.userService.CreateUser( ctx, &models.User{ Username: lib.AsStringP(user.GetUsername()), Password: lib.AsStringP(user.GetPassword()), Email: nil, ExpiresAt: AsTimeP(user.ExpiresAt), Role: AsMRoleP(user.GetRole()), }, ) if err != nil { return nil, status.Errorf(codes.Unknown, err.Error()) // FIXME } return &userv1.CreateUserResponse{ Id: id, }, nil } func (s *AuthServer) ReadUser(ctx context.Context, req *userv1.ReadUserRequest) (*userv1.ReadUserResponse, error) { user, err := s.userService.ReadUser( ctx, req.GetId(), ) if err != nil { return nil, status.Errorf(codes.Unknown, err.Error()) // FIXME } return &userv1.ReadUserResponse{ User: &userv1.ReadUserResponse_User{ Id: *user.Id, Username: *user.Username, ExpiresAt: AsTimestampP(user.ExpiresAt), CreatedAt: AsTimestampP(user.CreatedAt), Role: *AsRoleP(user.Role), }, }, nil } func (s *AuthServer) UpdateUser(ctx context.Context, req *userv1.UpdateUserRequest) (*emptypb.Empty, error) { user := req.GetUser() if user == nil { return nil, status.Errorf(codes.Unknown, "") // FIXME } err := s.userService.UpdateUser( ctx, &models.User{ Id: lib.AsInt32P(user.GetId()), Username: lib.AsStringP(user.GetUsername()), Password: lib.AsStringP(user.GetPassword()), Email: nil, ExpiresAt: AsTimeP(user.ExpiresAt), Role: AsMRoleP(user.GetRole()), }, ) if err != nil { return nil, status.Errorf(codes.Unknown, err.Error()) // FIXME } return &emptypb.Empty{}, nil } func (s *AuthServer) DeleteUser(ctx context.Context, req *userv1.DeleteUserRequest) (*emptypb.Empty, error) { err := s.userService.DeleteUser( ctx, req.GetId(), ) if err != nil { return nil, status.Errorf(codes.Unknown, err.Error()) // FIXME } return &emptypb.Empty{}, nil }