create account_app and move delivery layer to account_app

This commit is contained in:
fardin 2026-04-29 19:58:57 -04:00
parent 590ed0bb07
commit 764c1714d6
4 changed files with 20 additions and 27 deletions

View File

@ -1,21 +1,20 @@
package account
package accountapp
import (
"log"
"git.gocasts.ir/ebhomengo/niki/accountapp/delivery/grpc"
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
grpcAccountDelivery "git.gocasts.ir/ebhomengo/niki/domain/account/delivery/grpc"
"git.gocasts.ir/ebhomengo/niki/domain/account/repository/mysql"
redisRepo "git.gocasts.ir/ebhomengo/niki/domain/account/repository/redis"
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
database "git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
rpcPkg "git.gocasts.ir/ebhomengo/niki/pkg/grpc"
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
)
type Application struct {
GrpcServer grpcAccountDelivery.Server
GrpcServer grpc.Server
Config Config
accountSvc service.Service
}
@ -27,10 +26,12 @@ func Setup(cfg Config, db *database.DB) Application {
smsAdapter := kavenegar.New(cfg.Kavenegar)
accountSvc := service.NewService(cfg.accountSvc, otpRepo, mysqlRepo, smsAdapter)
rpcServer := rpcPkg.New(cfg.grpcServerCfg)
return Application{
accountSvc: accountSvc,
Config: cfg,
GrpcServer: grpcAccountDelivery.New(rpcPkg.New(), cfg.grpcServerCfg),
GrpcServer: grpc.New(rpcServer, accountSvc),
}
}

View File

@ -1,12 +1,11 @@
package account
package accountapp
import (
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
server "git.gocasts.ir/ebhomengo/niki/domain/account/delivery/grpc"
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
"git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
client "git.gocasts.ir/ebhomengo/niki/pkg/grpc"
"git.gocasts.ir/ebhomengo/niki/pkg/grpc"
)
type Config struct {
@ -14,7 +13,7 @@ type Config struct {
Redis redis.Config `koanf:"redis_db"`
MysqlDB mysql.Config `koanf:"mysql_db"`
Kavenegar kavenegar.Config `koanf:"kavenegar"`
grpcServerCfg server.Config `koanf:"grpc_server"`
grpcClientCfg client.Config `koanf:"grpc_client"`
grpcServerCfg grpc.Config `koanf:"grpc_server"`
grpcClientCfg grpc.Client `koanf:"grpc_client"`
PathOfMigration string `koanf:"path_of_migration"`
}

View File

@ -8,31 +8,24 @@ import (
pb "git.gocasts.ir/ebhomengo/niki/contract/goprotobuf/account"
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
"git.gocasts.ir/ebhomengo/niki/pkg/grpc"
)
type Config struct {
Port int `koanf:"port"`
Network string `koanf:"network"`
}
type Server struct {
server grpc.RPCServer
config Config
svcAccount service.Service
server *grpc.RPCServer
accountSvc service.Service
pb.UnimplementedAccountServiceServer
}
func New(server grpc.RPCServer, cfg Config) Server {
func New(server *grpc.RPCServer, accountSvc service.Service) Server {
return Server{
server: server,
config: cfg,
accountSvc: accountSvc,
}
}
func (s Server) SendOtp(ctx context.Context, req *pb.SendOtpRequest) (*pb.SendOtpResponse, error) {
err := s.svcAccount.SendOTP(ctx, req.PhoneNumber)
err := s.accountSvc.SendOTP(ctx, req.PhoneNumber)
if err != nil {
return nil, err
}
@ -42,7 +35,7 @@ func (s Server) SendOtp(ctx context.Context, req *pb.SendOtpRequest) (*pb.SendOt
func (s Server) LoginOrRegister(ctx context.Context, req *pb.LoginOrRegisterRequest) (*pb.LoginOrRegisterResponse, error) {
res := &pb.LoginOrRegisterResponse{}
driver, err := s.svcAccount.LoginOrRegisterDriver(ctx, req.PhoneNumber, req.VerifyCode)
driver, err := s.accountSvc.LoginOrRegisterDriver(ctx, req.PhoneNumber, req.VerifyCode)
if err != nil {
return nil, err
}
@ -57,7 +50,7 @@ func (s Server) LoginOrRegister(ctx context.Context, req *pb.LoginOrRegisterRequ
}
func (s Server) Start() error {
listener, err := net.Listen(s.config.Network, fmt.Sprintf(":%d", s.config.Port))
listener, err := net.Listen(s.server.Config.NetworkType, fmt.Sprintf(":%d", s.server.Config.Port))
if err != nil {
return err

View File

@ -22,7 +22,7 @@ func Setup(config Config, conn *grpc.ClientConn) Application {
driverSvc := service.NewService(config.DriverSvc, accountClient, driverValidator)
driverHandler := http.NewHandler(driverSvc)
httpServer := http_server.NewServer(config.HttpServer)
httpServer := httpserver.New(config.HttpServer)
return Application{
svc: driverSvc,