migrate from github

This commit is contained in:
2026-07-15 22:42:31 +08:00
commit 3ad559f05e
262 changed files with 21637 additions and 0 deletions
@@ -0,0 +1,133 @@
package grpcserver
import (
"context"
"github.com/XingfenD/yoresee_doc/internal/dto"
"github.com/XingfenD/yoresee_doc/internal/service/auth_service"
"github.com/XingfenD/yoresee_doc/internal/status"
pb "github.com/XingfenD/yoresee_doc/pkg/gen/yoresee_doc/v1"
)
type AuthServiceServer struct {
pb.UnimplementedAuthServiceServer
}
func NewAuthServiceServer() *AuthServiceServer {
return &AuthServiceServer{}
}
func (s *AuthServiceServer) Login(ctx context.Context, req *pb.AuthLoginRequest) (*pb.AuthLoginResponse, error) {
if req == nil || req.Email == "" || req.Password == "" {
return &pb.AuthLoginResponse{Base: baseResponseFromStatus(status.StatusParamError)}, nil
}
token, user, err := auth_service.AuthSvc.Login(req.Email, req.Password)
if err != nil {
return &pb.AuthLoginResponse{Base: baseResponseFromErr(err)}, nil
}
return &pb.AuthLoginResponse{
Base: baseResponseFromErr(nil),
Token: token,
User: toUserResponse(user),
}, nil
}
func (s *AuthServiceServer) Register(ctx context.Context, req *pb.AuthRegisterRequest) (*pb.AuthRegisterResponse, error) {
if req == nil || req.Username == "" || req.Password == "" || req.Email == "" {
return &pb.AuthRegisterResponse{Base: baseResponseFromStatus(status.StatusParamError)}, nil
}
userCreate := &dto.UserCreate{
Username: req.Username,
Email: req.Email,
Password: req.Password,
}
if req.InvitationCode != nil {
userCreate.InvitationCode = req.InvitationCode
}
err := auth_service.AuthSvc.Register(ctx, userCreate)
if err != nil {
return &pb.AuthRegisterResponse{Base: baseResponseFromErr(err)}, nil
}
return &pb.AuthRegisterResponse{Base: baseResponseFromErr(nil)}, nil
}
func (s *AuthServiceServer) UpdateProfile(ctx context.Context, req *pb.UpdateProfileRequest) (*pb.UpdateProfileResponse, error) {
if req == nil {
return &pb.UpdateProfileResponse{Base: baseResponseFromStatus(status.StatusParamError)}, nil
}
userExternalID, ok := ctx.Value("user_external_id").(string)
if !ok || userExternalID == "" {
return &pb.UpdateProfileResponse{Base: baseResponseFromStatus(status.StatusTokenInvalid)}, nil
}
serviceReq := &dto.UpdateProfileRequest{
Username: req.Username,
Email: req.Email,
Nickname: req.Nickname,
Password: req.Password,
AvatarFile: req.AvatarFile,
AvatarFilename: req.AvatarFilename,
AvatarContentType: req.AvatarContentType,
}
user, err := auth_service.AuthSvc.UpdateProfile(userExternalID, serviceReq)
if err != nil {
return &pb.UpdateProfileResponse{Base: baseResponseFromErr(err)}, nil
}
return &pb.UpdateProfileResponse{
Base: baseResponseFromErr(nil),
User: toUserResponse(user),
}, nil
}
func (s *AuthServiceServer) QuerySideBarDisplay(ctx context.Context, req *pb.QuerySideBarDisplayRequest) (*pb.QuerySideBarDisplayResponse, error) {
if req == nil || req.Scene == "" {
return &pb.QuerySideBarDisplayResponse{Base: baseResponseFromStatus(status.StatusParamError)}, nil
}
userExternalID, ok := ctx.Value("user_external_id").(string)
if !ok || userExternalID == "" {
return &pb.QuerySideBarDisplayResponse{Base: baseResponseFromStatus(status.StatusTokenInvalid)}, nil
}
isAdmin, err := auth_service.AuthSvc.IsAdmin(userExternalID)
if err != nil {
return &pb.QuerySideBarDisplayResponse{Base: baseResponseFromErr(err)}, nil
}
displayTabs, err := auth_service.AuthSvc.QuerySideBarDisplay(req.Scene, isAdmin)
if err != nil {
return &pb.QuerySideBarDisplayResponse{Base: baseResponseFromErr(err)}, nil
}
return &pb.QuerySideBarDisplayResponse{
Base: baseResponseFromErr(nil),
DisplayTabs: displayTabs,
}, nil
}
func (s *AuthServiceServer) QueryTopNavDisplay(ctx context.Context, req *pb.QueryTopNavDisplayRequest) (*pb.QueryTopNavDisplayResponse, error) {
userExternalID, ok := ctx.Value("user_external_id").(string)
if !ok || userExternalID == "" {
return &pb.QueryTopNavDisplayResponse{Base: baseResponseFromStatus(status.StatusTokenInvalid)}, nil
}
isAdmin, err := auth_service.AuthSvc.IsAdmin(userExternalID)
if err != nil {
return &pb.QueryTopNavDisplayResponse{Base: baseResponseFromErr(err)}, nil
}
menus, err := auth_service.AuthSvc.QueryTopNavDisplay(isAdmin)
if err != nil {
return &pb.QueryTopNavDisplayResponse{Base: baseResponseFromErr(err)}, nil
}
return &pb.QueryTopNavDisplayResponse{
Base: baseResponseFromErr(nil),
DisplayMenus: menus,
}, nil
}