ms-auth/internal/transport/user.go

89 lines
2.3 KiB
Go
Raw Permalink Normal View History

2024-07-14 21:26:34 +00:00
package transport
import (
"context"
2024-08-14 15:24:57 +00:00
"git.sch9.ru/new_gate/ms-auth/internal/lib"
"git.sch9.ru/new_gate/ms-auth/internal/models"
2024-08-16 16:43:31 +00:00
userv1 "git.sch9.ru/new_gate/ms-auth/pkg/go/gen/proto/user/v1"
2024-07-14 21:26:34 +00:00
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/emptypb"
)
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,
2024-08-14 10:36:43 +00:00
&models.User{
Username: lib.AsStringP(user.GetUsername()),
Password: lib.AsStringP(user.GetPassword()),
Email: nil,
ExpiresAt: AsTimeP(user.ExpiresAt),
Role: AsMRoleP(user.GetRole()),
},
2024-07-14 21:26:34 +00:00
)
if err != nil {
return nil, status.Errorf(codes.Unknown, err.Error()) // FIXME
}
return &userv1.CreateUserResponse{
2024-08-14 10:36:43 +00:00
Id: id,
2024-07-14 21:26:34 +00:00
}, 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{
2024-08-14 10:36:43 +00:00
Id: *user.Id,
Username: *user.Username,
ExpiresAt: AsTimestampP(user.ExpiresAt),
CreatedAt: AsTimestampP(user.CreatedAt),
Role: *AsRoleP(user.Role),
2024-07-14 21:26:34 +00:00
},
}, 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,
2024-08-14 10:36:43 +00:00
&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()),
},
2024-07-14 21:26:34 +00:00
)
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
}