Toggle
This commit is contained in:
parent
2fd676ef3e
commit
414c980c13
@ -34,6 +34,7 @@ type Config struct {
|
||||
Withdraw Withdraw `mapstructure:"withdrawal"`
|
||||
Discovery Discovery `mapstructure:"discovery"`
|
||||
Order Order `mapstructure:"order"`
|
||||
FeatureToggle FeatureToggle `mapstructure:"feature_toggle"`
|
||||
}
|
||||
|
||||
var (
|
||||
|
||||
9
config/logger.go
Normal file
9
config/logger.go
Normal file
@ -0,0 +1,9 @@
|
||||
package config
|
||||
|
||||
type FeatureToggle struct {
|
||||
LoggerEnabled bool `mapstructure:"logger_enabled"`
|
||||
}
|
||||
|
||||
func (f *FeatureToggle) IsLoggerEnabled() bool {
|
||||
return f.LoggerEnabled
|
||||
}
|
||||
@ -77,3 +77,6 @@ discovery:
|
||||
- name: "Sumatera"
|
||||
- name: "Kalimantan"
|
||||
- name: "Sulawesi"
|
||||
|
||||
feature_toggle:
|
||||
logger_enabled: false
|
||||
@ -2,6 +2,7 @@ package app
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"furtuna-be/config"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gofrs/uuid"
|
||||
@ -9,7 +10,7 @@ import (
|
||||
"furtuna-be/internal/middlewares"
|
||||
)
|
||||
|
||||
func NewServer() *Server {
|
||||
func NewServer(cfg *config.Config) *Server {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
server := &Server{
|
||||
@ -19,8 +20,8 @@ func NewServer() *Server {
|
||||
server.Use(middlewares.Cors())
|
||||
server.Use(middlewares.LogCorsError())
|
||||
server.Use(middlewares.Trace())
|
||||
server.Use(middlewares.Logger())
|
||||
server.Use(middlewares.RequestMiddleware())
|
||||
server.Use(middlewares.Logger(&cfg.FeatureToggle))
|
||||
server.Use(middlewares.RequestMiddleware(&cfg.FeatureToggle))
|
||||
|
||||
return server
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ func NewPostgres(c config.Database) (*gorm.DB, error) {
|
||||
|
||||
zapCfg := zap.NewProductionConfig()
|
||||
zapCfg.Level = zap.NewAtomicLevelAt(zap.DebugLevel) // whatever minimum level
|
||||
zapCfg.DisableCaller = true
|
||||
zapCfg.DisableCaller = false
|
||||
// logger, _ := zapCfg.Build()
|
||||
// db = gorm.Open(sqldblogger.New(logger), db)
|
||||
|
||||
|
||||
@ -9,16 +9,28 @@ import (
|
||||
"furtuna-be/internal/common/request"
|
||||
)
|
||||
|
||||
func Logger() gin.HandlerFunc {
|
||||
type ConfigLogger interface {
|
||||
IsLoggerEnabled() bool
|
||||
}
|
||||
|
||||
func Logger(c ConfigLogger) gin.HandlerFunc {
|
||||
if !c.IsLoggerEnabled() {
|
||||
return func(ctx *gin.Context) {
|
||||
ctx.Next()
|
||||
}
|
||||
}
|
||||
|
||||
return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
|
||||
var parsedReqInfo request.RequestInfo
|
||||
|
||||
reqInfo, exists := param.Keys[request.ReqInfoKey]
|
||||
if exists {
|
||||
parsedReqInfo = reqInfo.(request.RequestInfo)
|
||||
if reqInfo, exists := param.Keys[request.ReqInfoKey]; exists {
|
||||
if castedReqInfo, ok := reqInfo.(request.RequestInfo); ok {
|
||||
parsedReqInfo = castedReqInfo
|
||||
}
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s - [HTTP] TraceId: %s; UserId: %d; Method: %s; Path: %s; Status: %d, Latency: %s;\n\n",
|
||||
return fmt.Sprintf(
|
||||
"%s - [HTTP] TraceId: %s; UserId: %d; Method: %s; Path: %s; Status: %d; Latency: %s;\n\n",
|
||||
param.TimeStamp.Format(time.RFC1123),
|
||||
parsedReqInfo.TraceId,
|
||||
parsedReqInfo.UserId,
|
||||
|
||||
@ -16,7 +16,13 @@ import (
|
||||
"furtuna-be/internal/common/logger"
|
||||
)
|
||||
|
||||
func RequestMiddleware() (handler gin.HandlerFunc) {
|
||||
func RequestMiddleware(c ConfigLogger) (handler gin.HandlerFunc) {
|
||||
if !c.IsLoggerEnabled() {
|
||||
return func(ctx *gin.Context) {
|
||||
ctx.Next()
|
||||
}
|
||||
}
|
||||
|
||||
return func(ctx *gin.Context) {
|
||||
start := time.Now()
|
||||
body, _ := readRequestBody(ctx.Request)
|
||||
|
||||
@ -2,6 +2,7 @@ package license
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"furtuna-be/internal/common/logger"
|
||||
"furtuna-be/internal/entity"
|
||||
"github.com/google/uuid"
|
||||
@ -99,11 +100,17 @@ func (r *LicenseRepository) GetAll(ctx context.Context, limit, offset int, statu
|
||||
|
||||
func (r *LicenseRepository) FindByPartnerIDMaxEndDate(ctx context.Context, partnerID *int64) (*entity.LicenseDB, error) {
|
||||
var licenseDB entity.LicenseDB
|
||||
if err := r.db.Debug().WithContext(ctx).
|
||||
if err := r.db.WithContext(ctx).
|
||||
Where("partner_id = ?", partnerID).
|
||||
Order("end_date DESC").
|
||||
First(&licenseDB).Error; err != nil {
|
||||
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &licenseDB, nil
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ func (b *OrderRepository) GetAllHystoryOrders(ctx context.Context, req entity.Or
|
||||
query = query.Limit(req.Limit)
|
||||
}
|
||||
|
||||
if err := query.Debug().Scan(&orders).Error; err != nil {
|
||||
if err := query.Scan(&orders).Error; err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when get all history orders", zap.Error(err))
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
@ -79,7 +79,7 @@ func (r *SiteRepository) Update(ctx context.Context, site *entity.SiteDB) (*enti
|
||||
|
||||
func (r *SiteRepository) GetByID(ctx context.Context, id int64) (*entity.SiteDB, error) {
|
||||
site := new(entity.SiteDB)
|
||||
if err := r.db.Debug().Preload("Products").First(site, id).Error; err != nil {
|
||||
if err := r.db.Preload("Products").First(site, id).Error; err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when getting site by ID", zap.Error(err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"furtuna-be/internal/common/mycontext"
|
||||
"furtuna-be/internal/entity"
|
||||
"furtuna-be/internal/utils"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
||||
"furtuna-be/internal/common/errors"
|
||||
@ -68,8 +67,10 @@ func (u *AuthServiceImpl) AuthenticateUser(ctx context.Context, email, password
|
||||
logger.ContextLogger(ctx).Error("error when get user license", zap.Error(err))
|
||||
return nil, errors.ErrorInternalServer
|
||||
}
|
||||
if parterLicense != nil {
|
||||
licensePartner = parterLicense.ToPartnerLicense()
|
||||
}
|
||||
}
|
||||
|
||||
return user.ToUserAuthenticate(signedToken, licensePartner), nil
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user