tinfoil-knight commented on code in PR #7402:
URL: https://github.com/apache/trafficcontrol/pull/7402#discussion_r1135248072


##########
traffic_ops/traffic_ops_golang/role/roles.go:
##########
@@ -394,24 +395,15 @@ func Update(w http.ResponseWriter, r *http.Request) {
                api.HandleErr(w, r, tx, http.StatusPreconditionFailed, 
api.ResourceModifiedError, nil)
                return
        }
-       rows, err := tx.Query(updateRoleQuery(), roleV4.Name, 
roleV4.Description, currentRoleName)
+       err = tx.QueryRow(updateRoleQuery(), roleV4.Name, roleV4.Description, 
currentRoleName).Scan(&roleV4.LastUpdated)
        if err != nil {
-               usrErr, sysErr, code := api.ParseDBError(err)
-               api.HandleErr(w, r, tx, code, usrErr, fmt.Errorf("updating 
role: %w", sysErr))
-               return
-       }
-       defer rows.Close()
-       if !rows.Next() {
-               api.HandleErr(w, r, tx, http.StatusNotFound, errors.New("no 
such role"), nil)
-               return
-       }
-       var lastUpdated time.Time
-       for rows.Next() {
-               if err := rows.Scan(&lastUpdated); err != nil {
-                       api.HandleErr(w, r, tx, http.StatusInternalServerError, 
nil, fmt.Errorf("scanning lastUpdated from role update: %w", err))
+               if err == sql.ErrNoRows {
+                       api.HandleErr(w, r, tx, http.StatusNotFound, 
errors.New("no such role"), nil)
                        return
                }
-               roleV4.LastUpdated = &lastUpdated
+               usrErr, sysErr, code := api.ParseDBError(err)
+               api.HandleErr(w, r, tx, code, usrErr, fmt.Errorf("updating role 
and scanning lastUpdated : %w", sysErr))

Review Comment:
   Note for Reviewer:
   Unlike `Query`, the `QueryRow` method returns no error. The chained `Scan` 
method returns the errors. It is difficult to properly differentiate b/w errors 
that happened while updating & the ones that occurred while scanning. The error 
message prefix has therefore been merged together.
   
   Ref: https://jmoiron.github.io/sqlx/#queryrow



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@trafficcontrol.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to