64 lines
1.9 KiB
Go
64 lines
1.9 KiB
Go
|
|
package service
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
|
||
|
|
"github.com/cloudprint/cloudprint-backend/internal/service"
|
||
|
|
pb "github.com/cloudprint/cloudprint-backend/proto/generated"
|
||
|
|
"google.golang.org/grpc/codes"
|
||
|
|
"google.golang.org/grpc/status"
|
||
|
|
)
|
||
|
|
|
||
|
|
type AuthServiceServer struct {
|
||
|
|
pb.UnimplementedAuthServiceServer
|
||
|
|
authService *service.AuthService
|
||
|
|
}
|
||
|
|
|
||
|
|
func NewAuthServiceServer(authService *service.AuthService) *AuthServiceServer {
|
||
|
|
return &AuthServiceServer{
|
||
|
|
authService: authService,
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *AuthServiceServer) Login(ctx context.Context, req *pb.LoginRequest) (*pb.LoginResponse, error) {
|
||
|
|
result, err := s.authService.Login(ctx, req.Code)
|
||
|
|
if err != nil {
|
||
|
|
return nil, status.Errorf(codes.Internal, "login failed: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
return &pb.LoginResponse{
|
||
|
|
AccessToken: result.AccessToken,
|
||
|
|
RefreshToken: result.RefreshToken,
|
||
|
|
User: &pb.User{
|
||
|
|
Id: result.User.ID,
|
||
|
|
Openid: result.User.Openid,
|
||
|
|
Nickname: result.User.Nickname,
|
||
|
|
Avatar: result.User.Avatar,
|
||
|
|
Balance: result.User.Balance,
|
||
|
|
},
|
||
|
|
}, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *AuthServiceServer) RefreshToken(ctx context.Context, req *pb.RefreshRequest) (*pb.RefreshResponse, error) {
|
||
|
|
newToken, err := s.authService.RefreshToken(ctx, req.RefreshToken)
|
||
|
|
if err != nil {
|
||
|
|
return nil, status.Errorf(codes.Internal, "refresh token failed: %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
return &pb.RefreshResponse{
|
||
|
|
AccessToken: newToken,
|
||
|
|
}, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *AuthServiceServer) GetUserInfo(ctx context.Context, req *pb.GetUserInfoRequest) (*pb.User, error) {
|
||
|
|
// In a real implementation, extract user ID from context
|
||
|
|
// For now, this is a placeholder
|
||
|
|
return nil, status.Errorf(codes.Unimplemented, "not implemented")
|
||
|
|
}
|
||
|
|
|
||
|
|
func (s *AuthServiceServer) UpdateUser(ctx context.Context, req *pb.UpdateUserRequest) (*pb.User, error) {
|
||
|
|
// In a real implementation, extract user ID from context
|
||
|
|
// For now, this is a placeholder
|
||
|
|
return nil, status.Errorf(codes.Unimplemented, "not implemented")
|
||
|
|
}
|