log wrappers refactor

This commit is contained in:
nquidox 2026-03-08 15:12:17 +03:00
parent bf193c7d90
commit 40344d47b5
3 changed files with 46 additions and 50 deletions

View file

@ -9,6 +9,8 @@ import (
"net/http" "net/http"
) )
const controllerLogHeader string = "[Controller]"
type controller struct { type controller struct {
service *service service *service
utils utils.Utils utils utils.Utils
@ -54,13 +56,13 @@ func (co *controller) create(c *gin.Context) {
var newMerch newMerchDTO var newMerch newMerchDTO
if err := c.ShouldBindJSON(&newMerch); err != nil { if err := c.ShouldBindJSON(&newMerch); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if err := co.service.createMerch(c, getUserId(c), &newMerch); err != nil { if err := co.service.createMerch(c, getUserId(c), &newMerch); err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
@ -85,7 +87,7 @@ func (co *controller) getMany(c *gin.Context) {
response, err := co.service.getMany(c, getUserId(c)) response, err := co.service.getMany(c, getUserId(c))
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
@ -115,27 +117,27 @@ func (co *controller) updateMerch(c *gin.Context) {
merchUuid := c.Param("id") merchUuid := c.Param("id")
if err := uuid.Validate(merchUuid); err != nil { if err := uuid.Validate(merchUuid); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
var payload updateMerchDTO var payload updateMerchDTO
if err := c.ShouldBindJSON(&payload); err != nil { if err := c.ShouldBindJSON(&payload); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if merchUuid != payload.MerchUuid { if merchUuid != payload.MerchUuid {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: "MerchUuid does not match"}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: "MerchUuid does not match"})
logErrController(errors.New("MerchUuid does not match")) logErr(controllerLogHeader, errors.New("MerchUuid does not match"))
return return
} }
response, err := co.service.updateMerch(c, getUserId(c), &payload) response, err := co.service.updateMerch(c, getUserId(c), &payload)
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
@ -160,27 +162,27 @@ func (co *controller) updateExtraData(c *gin.Context) {
merchUuid := c.Param("id") merchUuid := c.Param("id")
if err := uuid.Validate(merchUuid); err != nil { if err := uuid.Validate(merchUuid); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
var payload extraDataDTO var payload extraDataDTO
if err := c.ShouldBindJSON(&payload); err != nil { if err := c.ShouldBindJSON(&payload); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if merchUuid != payload.MerchUuid { if merchUuid != payload.MerchUuid {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: "MerchUuid does not match"}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: "MerchUuid does not match"})
logErrController(errors.New("MerchUuid does not match")) logErr(controllerLogHeader, errors.New("MerchUuid does not match"))
return return
} }
response, err := co.service.updateExtraData(c, getUserId(c), &payload) response, err := co.service.updateExtraData(c, getUserId(c), &payload)
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
@ -203,13 +205,13 @@ func (co *controller) deleteMerch(c *gin.Context) {
merchUuid := c.Param("id") merchUuid := c.Param("id")
if err := uuid.Validate(merchUuid); err != nil { if err := uuid.Validate(merchUuid); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if err := co.service.deleteOneMerchRecord(c, getUserId(c), merchUuid); err != nil { if err := co.service.deleteOneMerchRecord(c, getUserId(c), merchUuid); err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
@ -233,17 +235,17 @@ func (co *controller) createOrigin(c *gin.Context) {
if err := c.ShouldBindJSON(&origin); err != nil { if err := c.ShouldBindJSON(&origin); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if err := co.service.createOrigin(c, origin); err != nil { if err := co.service.createOrigin(c, origin); err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
logDebugController("create origin success") logDebug(controllerLogHeader, "create origin success")
c.Status(http.StatusCreated) c.Status(http.StatusCreated)
} }
@ -263,11 +265,11 @@ func (co *controller) getOrigins(c *gin.Context) {
response, err := co.service.getOrigins(c) response, err := co.service.getOrigins(c)
if err != nil { if err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
logDebugController("get origins success") logDebug(controllerLogHeader, "get origins success")
c.JSON(http.StatusOK, response) c.JSON(http.StatusOK, response)
} }
@ -288,16 +290,16 @@ func (co *controller) deleteOrigin(c *gin.Context) {
if err := c.ShouldBindJSON(&origin); err != nil { if err := c.ShouldBindJSON(&origin); err != nil {
c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()}) c.JSON(http.StatusBadRequest, responses.BadRequest{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
if err := co.service.deleteOrigin(c, origin); err != nil { if err := co.service.deleteOrigin(c, origin); err != nil {
c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()}) c.JSON(http.StatusInternalServerError, responses.InternalServerError{Error: err.Error()})
logErrController(err) logErr(controllerLogHeader, err)
return return
} }
logDebugController("delete origin success") logDebug(controllerLogHeader, "delete origin success")
c.Status(http.StatusNoContent) c.Status(http.StatusNoContent)
} }

View file

@ -6,29 +6,17 @@ import (
) )
const ( const (
pkgLogHeader = "Merch" pkgLogHeader = "Merch"
controllerLogHeader = "[Controller]"
serviceLogHeader = "[Service]"
) )
// logDebugService wrapper for log messages // logDebug wrapper for log messages
func logDebugService(msg string) { func logDebug(header, msg string) {
log.Debugf("%v %v %v", pkgLogHeader, serviceLogHeader, msg) log.Debugf("%v %v %v", pkgLogHeader, header, msg)
} }
// logErrService wrapper for log messages // logErr wrapper for log messages
func logErrService(err error) { func logErr(header string, err error) {
log.WithError(err).Errorf("%v %v", pkgLogHeader, serviceLogHeader) log.WithError(err).Errorf("%v %v", pkgLogHeader, header)
}
// logDebugController wrapper for log messages
func logDebugController(msg string) {
log.Debugf("%v %v %v", pkgLogHeader, controllerLogHeader, msg)
}
// logErrController wrapper for log messages
func logErrController(err error) {
log.WithError(err).Errorf("%v %v", pkgLogHeader, controllerLogHeader)
} }
func getUserId(c *gin.Context) int64 { func getUserId(c *gin.Context) int64 {

View file

@ -8,6 +8,8 @@ import (
"github.com/google/uuid" "github.com/google/uuid"
) )
const serviceLogHeader string = "[Service]"
type service struct { type service struct {
repo Repository repo Repository
utils utils.Utils utils utils.Utils
@ -31,14 +33,14 @@ func (s *service) createOrigin(ctx context.Context, o *newOriginDTO) error {
Name: o.Name, Name: o.Name,
} }
logDebugService("create origin success") logDebug(serviceLogHeader, "create origin success")
return s.repo.createOrigin(ctx, newOrigin) return s.repo.createOrigin(ctx, newOrigin)
} }
func (s *service) getOrigins(ctx context.Context) (*originsDTO, error) { func (s *service) getOrigins(ctx context.Context) (*originsDTO, error) {
data, err := s.repo.getOrigins(ctx) data, err := s.repo.getOrigins(ctx)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return nil, err return nil, err
} }
@ -54,12 +56,12 @@ func (s *service) getOrigins(ctx context.Context) (*originsDTO, error) {
Origins: origins, Origins: origins,
} }
logDebugService("get origins success") logDebug(serviceLogHeader, "get origins success")
return response, nil return response, nil
} }
func (s *service) deleteOrigin(ctx context.Context, origin *deleteOriginDTO) error { func (s *service) deleteOrigin(ctx context.Context, origin *deleteOriginDTO) error {
logDebugService("delete origin success") logDebug(serviceLogHeader, "delete origin success")
return s.repo.deleteOriginByName(ctx, origin.Name, s.utils.NullTimeNowUTC()) return s.repo.deleteOriginByName(ctx, origin.Name, s.utils.NullTimeNowUTC())
} }
@ -72,7 +74,7 @@ func (s *service) createMerch(ctx context.Context, userId int64, payload *newMer
merchUuid, err := uuid.NewV7() merchUuid, err := uuid.NewV7()
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return err return err
} }
@ -90,7 +92,7 @@ func (s *service) createMerch(ctx context.Context, userId int64, payload *newMer
originsMap, _, err := s.getOriginsMaps(ctx) originsMap, _, err := s.getOriginsMaps(ctx)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return err return err
} }
@ -112,7 +114,7 @@ func (s *service) createMerch(ctx context.Context, userId int64, payload *newMer
func (s *service) getOriginsMaps(ctx context.Context) (map[string]int64, map[int64]string, error) { func (s *service) getOriginsMaps(ctx context.Context) (map[string]int64, map[int64]string, error) {
origins, err := s.repo.getOrigins(ctx) origins, err := s.repo.getOrigins(ctx)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return nil, nil, err return nil, nil, err
} }
@ -127,6 +129,10 @@ func (s *service) getOriginsMaps(ctx context.Context) (map[string]int64, map[int
return namesMap, idsMap, nil return namesMap, idsMap, nil
} }
func (s *service) getMerchUuidMap(ctx context.Context, uuids []string) (map[string]int64, error) {
return s.repo.getMerchUuidMap(ctx, uuids)
}
func (s *service) getMany(ctx context.Context, userId int64) ([]merchDTO, error) { func (s *service) getMany(ctx context.Context, userId int64) ([]merchDTO, error) {
return s.repo.getMany(ctx, userId) return s.repo.getMany(ctx, userId)
} }
@ -138,13 +144,13 @@ func (s *service) updateMerch(ctx context.Context, userId int64, payload *update
func (s *service) updateExtraData(ctx context.Context, userId int64, payload *extraDataDTO) (*extraDataDTO, error) { func (s *service) updateExtraData(ctx context.Context, userId int64, payload *extraDataDTO) (*extraDataDTO, error) {
merchId, err := s.repo.getMerchIdByUuid(ctx, userId, payload.MerchUuid) merchId, err := s.repo.getMerchIdByUuid(ctx, userId, payload.MerchUuid)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return nil, err return nil, err
} }
origins, ids, err := s.getOriginsMaps(ctx) origins, ids, err := s.getOriginsMaps(ctx)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return nil, err return nil, err
} }
@ -166,7 +172,7 @@ func (s *service) updateExtraData(ctx context.Context, userId int64, payload *ex
result, err := s.repo.updateExtraData(ctx, merchId, insertData) result, err := s.repo.updateExtraData(ctx, merchId, insertData)
if err != nil { if err != nil {
logErrService(err) logErr(serviceLogHeader, err)
return nil, err return nil, err
} }