diff --git a/domain/account/app.go b/accountapp/app.go similarity index 82% rename from domain/account/app.go rename to accountapp/app.go index 2384c2b4..0d175053 100644 --- a/domain/account/app.go +++ b/accountapp/app.go @@ -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), } } diff --git a/domain/account/config.go b/accountapp/config.go similarity index 67% rename from domain/account/config.go rename to accountapp/config.go index 5101d6c2..25361b7f 100644 --- a/domain/account/config.go +++ b/accountapp/config.go @@ -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"` } diff --git a/domain/account/delivery/grpc/server.go b/accountapp/delivery/grpc/server.go similarity index 70% rename from domain/account/delivery/grpc/server.go rename to accountapp/delivery/grpc/server.go index 46fa4a2e..3f68a27a 100644 --- a/domain/account/delivery/grpc/server.go +++ b/accountapp/delivery/grpc/server.go @@ -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, + server: server, + 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 diff --git a/driverapp/app.go b/driverapp/app.go index cec60122..b75f90a8 100644 --- a/driverapp/app.go +++ b/driverapp/app.go @@ -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,