package logic import ( "context" "juwan-backend/app/users/rpc/internal/svc" "juwan-backend/app/users/rpc/pb" "juwan-backend/common/converter" "github.com/zeromicro/go-zero/core/logx" ) type GetUserByUsernameLogic struct { ctx context.Context svcCtx *svc.ServiceContext logx.Logger } func NewGetUserByUsernameLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetUserByUsernameLogic { return &GetUserByUsernameLogic{ ctx: ctx, svcCtx: svcCtx, Logger: logx.WithContext(ctx), } } func (l *GetUserByUsernameLogic) GetUserByUsername(in *pb.GetUserByUsernameReq) (*pb.GetUserByUsernameResp, error) { user, err := l.svcCtx.UsersModelRO.FindOneByUsername(l.ctx, in.Username) pbUsers := &pb.Users{} converter.StructToStruct(user, pbUsers) if err == nil || user != nil { return &pb.GetUserByUsernameResp{ Users: pbUsers, }, nil } if err.Error() != "not found" { return nil, err } return &pb.GetUserByUsernameResp{}, nil }