89 lines
2.3 KiB
Go
89 lines
2.3 KiB
Go
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
|
|
}
|