Fix error type checks, change log levels, update comments.
Этот коммит содержится в:
@@ -407,18 +407,21 @@ func requestTrueUpReview(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
dueDate := utils.GetNextTrueUpReviewDueDate(time.Now())
|
dueDate := utils.GetNextTrueUpReviewDueDate(time.Now()).UnixMilli()
|
||||||
status, err := c.App.Srv().Store().TrueUpReview().GetTrueUpReviewStatus(dueDate.UnixMilli())
|
status, err := c.App.Srv().Store().TrueUpReview().GetTrueUpReviewStatus(dueDate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
// Check error. Continue if the status was just not found.
|
||||||
var nfErr *store.ErrNotFound
|
var nfErr *store.ErrNotFound
|
||||||
switch {
|
switch {
|
||||||
case errors.As(err, &nfErr):
|
case errors.As(err, &nfErr):
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.status_not_found", nil, "Could not find any true up status records", http.StatusNotFound).Wrap(err)
|
c.Logger.Warn("Could not find true up review status")
|
||||||
default:
|
default:
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.get_status_error", nil, "Could not get true up status records", http.StatusInternalServerError).Wrap(err)
|
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.get_status_error", nil, "Could not get true up status records", http.StatusInternalServerError).Wrap(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// No status was found, so create a new one.
|
||||||
|
status = &model.TrueUpReviewStatus{DueDate: dueDate, Completed: false}
|
||||||
status, err = c.App.Srv().Store().TrueUpReview().CreateTrueUpReviewStatusRecord(status)
|
status, err = c.App.Srv().Store().TrueUpReview().CreateTrueUpReviewStatusRecord(status)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.create_error", nil, "Could not create true up status record", http.StatusInternalServerError)
|
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.create_error", nil, "Could not create true up status record", http.StatusInternalServerError)
|
||||||
@@ -428,7 +431,7 @@ func requestTrueUpReview(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
// Do not send true-up review data if the user has already requested one for the quarter.
|
// Do not send true-up review data if the user has already requested one for the quarter.
|
||||||
if !status.Completed {
|
if !status.Completed {
|
||||||
// Send telemetry data.
|
// "Flatten" telemetry data.
|
||||||
json.Unmarshal(reviewProfileJson, &telemetryProperties)
|
json.Unmarshal(reviewProfileJson, &telemetryProperties)
|
||||||
delete(telemetryProperties, "plugins")
|
delete(telemetryProperties, "plugins")
|
||||||
plugins := reviewProfile.Plugins.ToMap()
|
plugins := reviewProfile.Plugins.ToMap()
|
||||||
@@ -439,9 +442,11 @@ func requestTrueUpReview(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
delete(telemetryProperties, "authentication_features")
|
delete(telemetryProperties, "authentication_features")
|
||||||
telemetryProperties["authentication_features"] = strings.Join(reviewProfile.AuthenticationFeatures, ",")
|
telemetryProperties["authentication_features"] = strings.Join(reviewProfile.AuthenticationFeatures, ",")
|
||||||
|
|
||||||
|
// Send telemetry data
|
||||||
telemetryService := c.App.Srv().GetTelemetryService()
|
telemetryService := c.App.Srv().GetTelemetryService()
|
||||||
telemetryService.SendTelemetry(model.TrueUpReviewTelemetryName, telemetryProperties)
|
telemetryService.SendTelemetry(model.TrueUpReviewTelemetryName, telemetryProperties)
|
||||||
|
|
||||||
|
// Update the review status to reflect the completion.
|
||||||
status.Completed = true
|
status.Completed = true
|
||||||
c.App.Srv().Store().TrueUpReview().Update(status)
|
c.App.Srv().Store().TrueUpReview().Update(status)
|
||||||
}
|
}
|
||||||
@@ -473,14 +478,14 @@ func trueUpReviewStatus(c *Context, w http.ResponseWriter, r *http.Request) {
|
|||||||
var nfErr *store.ErrNotFound
|
var nfErr *store.ErrNotFound
|
||||||
switch {
|
switch {
|
||||||
case errors.As(err, &nfErr):
|
case errors.As(err, &nfErr):
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.status_not_found", nil, "Could not find any true up status records", http.StatusNotFound).Wrap(err)
|
c.Logger.Warn("Could not find true up review status")
|
||||||
default:
|
default:
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.get_status_error", nil, "Could not get true up status records", http.StatusInternalServerError).Wrap(err)
|
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.get_status_error", nil, "Could not get true up status records", http.StatusInternalServerError).Wrap(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
status = &model.TrueUpReviewStatus{DueDate: nextDueDate.UnixMilli(), Completed: false}
|
||||||
status, err = c.App.Srv().Store().TrueUpReview().CreateTrueUpReviewStatusRecord(status)
|
status, err = c.App.Srv().Store().TrueUpReview().CreateTrueUpReviewStatusRecord(status)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.create_error", nil, "Could not create true up status record", http.StatusInternalServerError)
|
c.Err = model.NewAppError("requestTrueUpReview", "api.license.true_up_review.create_error", nil, "Could not create true up status record", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -4,6 +4,9 @@
|
|||||||
package sqlstore
|
package sqlstore
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"database/sql"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"github.com/mattermost/mattermost-server/v6/model"
|
"github.com/mattermost/mattermost-server/v6/model"
|
||||||
"github.com/mattermost/mattermost-server/v6/store"
|
"github.com/mattermost/mattermost-server/v6/store"
|
||||||
sq "github.com/mattermost/squirrel"
|
sq "github.com/mattermost/squirrel"
|
||||||
@@ -39,9 +42,9 @@ func (s *SqlTrueUpReviewStore) GetTrueUpReviewStatus(dueDate int64) (*model.True
|
|||||||
}
|
}
|
||||||
var trueUpReviewStatus model.TrueUpReviewStatus
|
var trueUpReviewStatus model.TrueUpReviewStatus
|
||||||
if err := s.GetReplicaX().Get(&trueUpReviewStatus, queryString, args...); err != nil {
|
if err := s.GetReplicaX().Get(&trueUpReviewStatus, queryString, args...); err != nil {
|
||||||
trueUpReviewStatus.Completed = false
|
if err == sql.ErrNoRows {
|
||||||
trueUpReviewStatus.DueDate = dueDate
|
return nil, store.NewErrNotFound("TrueUpReviewStatus", strconv.FormatInt(dueDate, 10))
|
||||||
return &trueUpReviewStatus, err
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return &trueUpReviewStatus, nil
|
return &trueUpReviewStatus, nil
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user