diff --git a/handlers/badges.go b/handlers/badges.go index 3bf5aab..ae8ebb3 100644 --- a/handlers/badges.go +++ b/handlers/badges.go @@ -121,9 +121,9 @@ func (handler *BadgesHandler) generateSVG(c *gin.Context, colorScheme ColorSchem prometheusOptions := badge.OptionStruct.(*models.PrometheusOptions) - metric, _ := handler.queryMetric(badge, handler.PrometheusAPIClient, prometheusOptions) + metric, _ := handler.queryMetric(badge, internalRequest, prometheusOptions) - metricValue := int(metric.Value) + metricValue := metric.Value label := metric.Label valueRectWidth := 40 @@ -247,14 +247,14 @@ func (handler *BadgesHandler) CreateBadge(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"id": newID}) } -func (handler *BadgesHandler) queryMetric(badge *models.Badge, client api.Client, options *models.PrometheusOptions) (*Metric, error) { +func (handler *BadgesHandler) queryMetric(badge *models.Badge, internalRequest bool, options *models.PrometheusOptions) (*Metric, error) { viewCount, err := handler.fetchViewCountFromDB(badge) if err != nil { return nil, err } if viewCount.Count == 0 { - v1api := v1.NewAPI(client) + v1api := v1.NewAPI(handler.PrometheusAPIClient) ctx, cancel := context.WithTimeout(context.Background(), metricRequestTimeout) defer cancel() @@ -271,9 +271,11 @@ func (handler *BadgesHandler) queryMetric(badge *models.Badge, client api.Client viewCount.Count = int(float64(v.Value)) } } - - if err = handler.updateMetric(viewCount); err != nil { - return nil, err + // only increase count for non internal request + if !internalRequest { + if err = handler.updateMetric(viewCount); err != nil { + return nil, err + } } return &Metric{