Untitled
unknown
abap
3 years ago
1.8 kB
4
Indexable
func (s *ratingService) getRatingTemplate(ctx context.Context, code string) (*dtos.RatingTemplate, error) {
var (
ratingTemplate dtos.RatingTemplate
cacheKey = fmt.Sprintf("vinshop_public:rating_template:%v", code)
)
if featureflag.IsEnabled(ctx, models.FlagEnableCacheRatingTemplate) &&
s.CheckCacheHit(ctx, s.redisClient, cacheKey, &ratingTemplate) {
return &ratingTemplate, nil
}
payload := cms.GetRatingTemplateRequest {
Type: code,
}
logger.Errorf(ctx, "get rating template by queries: %+v", payload)
data, err := s.ratingGetter.GetRatingTemplate(ctx, payload)
if err != nil {
logger.Errorf(ctx, "failed to fetch rating template from CMS, queries: %+v, err: %v", payload.Type, err)
return nil, apperrors.New(apperrors.ErrCommonInvalidRequestInfo, apperrors.WithError(err))
}
// Transform data
var (
categories []dtos.RatingCategory
)
for _, cate := range data.Categories {
categories = append(categories, dtos.RatingCategory{
ImageURL: cate.ImageURL,
CategoryName: cate.CategoryName,
})
}
ratingTemplate = dtos.RatingTemplate{
Service: data.Service,
Module: data.Module,
Type: data.Type,
BackgroundColor: data.BackgroundColor,
ShowDetails: data.ShowDetails,
ShowRatingResult: data.ShowRatingResult,
AllowRateAgain: data.AllowRateAgain,
Title: data.Title,
SubTitle: data.SubTitle,
IconURL: data.IconURL,
Categories: categories,
TitleLowRating: data.TitleLowRating,
TitleHighRating: data.TitleHighRating,
SuccessfulMessage: data.SuccessfulMessage,
CTATitle: data.CTATitle,
}
if featureflag.IsEnabled(ctx, models.FlagEnableCacheRatingTemplate) {
s.SetToCache(ctx, s.redisClient, cacheKey, ratingTemplate, 86400)
}
return &ratingTemplate, nil
}Editor is loading...