Fix error type checks, change log levels, update comments.

Этот коммит содержится в:
Conor Macpherson
2022-12-28 09:56:58 -05:00
родитель ba1c4befa8
Коммит 3c0375d18e
2 изменённых файлов: 17 добавлений и 9 удалений

Просмотреть файл

@@ -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