handle skip reasons

This commit is contained in:
Aleksandr Trushkin
2024-02-13 21:24:05 +03:00
parent 8f26b8ba6d
commit 288245f6f0

View File

@ -83,14 +83,30 @@ func (h exportHandlers) YMLCatalog(ctx context.Context, cmd *cli.Command) error
matcher := makeDefaultDimensionDispatcher()
var skipped int
const (
reasonNoSize = "no_size"
reasonTooLarge = "too_large"
)
skippedByReasons := map[string]int{
reasonNoSize: 0,
reasonTooLarge: 0,
}
iter := getItemsIter(ctx, r.GoodsItem())
for iter.Next() {
item := iter.Get()
sublog := log.With().Int64("cart", item.Cart).Logger()
if item.Sizes == (entity.GoodsItemSize{}) {
sublog.Warn().Str("sku", item.Articul).Int64("cart", item.Cart).Msg("skipping item because it does not have size")
skipped++
sublog.Warn().Str("reason", reasonNoSize).Msg("skipping item")
skippedByReasons[reasonNoSize]++
continue
}
const maximumAllowedSizes = 160
if sum := item.Sizes.GetSum(entity.DimensionKindCentimeter); sum > maximumAllowedSizes {
sublog.Warn().Str("reason", reasonTooLarge).Msg("skipping item")
skippedByReasons[reasonTooLarge]++
continue
}
@ -137,7 +153,7 @@ func (h exportHandlers) YMLCatalog(ctx context.Context, cmd *cli.Command) error
enc.Indent("", " ")
}
log.Info().Int("processed", len(shop.Offers)).Int("skipped", skipped).Msg("completed")
log.Info().Int("processed", len(shop.Offers)).Any("skipped", skippedByReasons).Msg("completed")
return enc.Encode(container)
}