do not increase view count for internal access

This commit is contained in:
2021-01-24 07:42:45 +11:00
parent f47c219513
commit 97c3583dff
+9 -7
View File
@@ -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{