forked from ebhomengo/niki
create account_app and move delivery layer to account_app
This commit is contained in:
parent
590ed0bb07
commit
764c1714d6
|
|
@ -1,21 +1,20 @@
|
||||||
package account
|
package accountapp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
|
"git.gocasts.ir/ebhomengo/niki/accountapp/delivery/grpc"
|
||||||
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
|
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
|
||||||
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
|
"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"
|
"git.gocasts.ir/ebhomengo/niki/domain/account/repository/mysql"
|
||||||
redisRepo "git.gocasts.ir/ebhomengo/niki/domain/account/repository/redis"
|
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"
|
database "git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
|
||||||
rpcPkg "git.gocasts.ir/ebhomengo/niki/pkg/grpc"
|
rpcPkg "git.gocasts.ir/ebhomengo/niki/pkg/grpc"
|
||||||
|
|
||||||
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Application struct {
|
type Application struct {
|
||||||
GrpcServer grpcAccountDelivery.Server
|
GrpcServer grpc.Server
|
||||||
Config Config
|
Config Config
|
||||||
accountSvc service.Service
|
accountSvc service.Service
|
||||||
}
|
}
|
||||||
|
|
@ -27,10 +26,12 @@ func Setup(cfg Config, db *database.DB) Application {
|
||||||
smsAdapter := kavenegar.New(cfg.Kavenegar)
|
smsAdapter := kavenegar.New(cfg.Kavenegar)
|
||||||
accountSvc := service.NewService(cfg.accountSvc, otpRepo, mysqlRepo, smsAdapter)
|
accountSvc := service.NewService(cfg.accountSvc, otpRepo, mysqlRepo, smsAdapter)
|
||||||
|
|
||||||
|
rpcServer := rpcPkg.New(cfg.grpcServerCfg)
|
||||||
|
|
||||||
return Application{
|
return Application{
|
||||||
accountSvc: accountSvc,
|
accountSvc: accountSvc,
|
||||||
Config: cfg,
|
Config: cfg,
|
||||||
GrpcServer: grpcAccountDelivery.New(rpcPkg.New(), cfg.grpcServerCfg),
|
GrpcServer: grpc.New(rpcServer, accountSvc),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
package account
|
package accountapp
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
|
"git.gocasts.ir/ebhomengo/niki/adapter/kavenegar"
|
||||||
"git.gocasts.ir/ebhomengo/niki/adapter/redis"
|
"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/domain/account/service"
|
||||||
"git.gocasts.ir/ebhomengo/niki/pkg/database/mysql"
|
"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 {
|
type Config struct {
|
||||||
|
|
@ -14,7 +13,7 @@ type Config struct {
|
||||||
Redis redis.Config `koanf:"redis_db"`
|
Redis redis.Config `koanf:"redis_db"`
|
||||||
MysqlDB mysql.Config `koanf:"mysql_db"`
|
MysqlDB mysql.Config `koanf:"mysql_db"`
|
||||||
Kavenegar kavenegar.Config `koanf:"kavenegar"`
|
Kavenegar kavenegar.Config `koanf:"kavenegar"`
|
||||||
grpcServerCfg server.Config `koanf:"grpc_server"`
|
grpcServerCfg grpc.Config `koanf:"grpc_server"`
|
||||||
grpcClientCfg client.Config `koanf:"grpc_client"`
|
grpcClientCfg grpc.Client `koanf:"grpc_client"`
|
||||||
PathOfMigration string `koanf:"path_of_migration"`
|
PathOfMigration string `koanf:"path_of_migration"`
|
||||||
}
|
}
|
||||||
|
|
@ -8,31 +8,24 @@ import (
|
||||||
|
|
||||||
pb "git.gocasts.ir/ebhomengo/niki/contract/goprotobuf/account"
|
pb "git.gocasts.ir/ebhomengo/niki/contract/goprotobuf/account"
|
||||||
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
|
"git.gocasts.ir/ebhomengo/niki/domain/account/service"
|
||||||
|
|
||||||
"git.gocasts.ir/ebhomengo/niki/pkg/grpc"
|
"git.gocasts.ir/ebhomengo/niki/pkg/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
|
||||||
Port int `koanf:"port"`
|
|
||||||
Network string `koanf:"network"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Server struct {
|
type Server struct {
|
||||||
server grpc.RPCServer
|
server *grpc.RPCServer
|
||||||
config Config
|
accountSvc service.Service
|
||||||
svcAccount service.Service
|
|
||||||
pb.UnimplementedAccountServiceServer
|
pb.UnimplementedAccountServiceServer
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(server grpc.RPCServer, cfg Config) Server {
|
func New(server *grpc.RPCServer, accountSvc service.Service) Server {
|
||||||
return Server{
|
return Server{
|
||||||
server: server,
|
server: server,
|
||||||
config: cfg,
|
accountSvc: accountSvc,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) SendOtp(ctx context.Context, req *pb.SendOtpRequest) (*pb.SendOtpResponse, error) {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
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) {
|
func (s Server) LoginOrRegister(ctx context.Context, req *pb.LoginOrRegisterRequest) (*pb.LoginOrRegisterResponse, error) {
|
||||||
res := &pb.LoginOrRegisterResponse{}
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
@ -57,7 +50,7 @@ func (s Server) LoginOrRegister(ctx context.Context, req *pb.LoginOrRegisterRequ
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Server) Start() error {
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
@ -22,7 +22,7 @@ func Setup(config Config, conn *grpc.ClientConn) Application {
|
||||||
driverSvc := service.NewService(config.DriverSvc, accountClient, driverValidator)
|
driverSvc := service.NewService(config.DriverSvc, accountClient, driverValidator)
|
||||||
driverHandler := http.NewHandler(driverSvc)
|
driverHandler := http.NewHandler(driverSvc)
|
||||||
|
|
||||||
httpServer := http_server.NewServer(config.HttpServer)
|
httpServer := httpserver.New(config.HttpServer)
|
||||||
|
|
||||||
return Application{
|
return Application{
|
||||||
svc: driverSvc,
|
svc: driverSvc,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue