From b209ab4eca550344e992b38fa8670df0963d4e5e Mon Sep 17 00:00:00 2001
From: meskio <meskio@sindominio.net>
Date: Tue, 6 Oct 2020 14:15:36 +0200
Subject: [PATCH] User 'errors.Is' instead of parsing the error message

---
 api/member.go      | 5 +++--
 api/order.go       | 3 ++-
 api/product.go     | 5 +++--
 api/transaction.go | 3 ++-
 4 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/api/member.go b/api/member.go
index b274b90..e52b327 100644
--- a/api/member.go
+++ b/api/member.go
@@ -2,6 +2,7 @@ package api
 
 import (
 	"encoding/json"
+	"errors"
 	"log"
 	"net/http"
 	"strconv"
@@ -90,7 +91,7 @@ func (a *api) getMemberNum(num int, w http.ResponseWriter, req *http.Request) {
 	var member Member
 	err := a.db.Where("num = ?", num).First(&member).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
@@ -132,7 +133,7 @@ func (a *api) UpdateMember(w http.ResponseWriter, req *http.Request) {
 	var dbMember Member
 	err = a.db.Where("num = ?", vars["num"]).First(&dbMember).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
diff --git a/api/order.go b/api/order.go
index 4a65572..64d7564 100644
--- a/api/order.go
+++ b/api/order.go
@@ -2,6 +2,7 @@ package api
 
 import (
 	"encoding/json"
+	"errors"
 	"log"
 	"net/http"
 	"time"
@@ -130,7 +131,7 @@ func (a *api) GetOrder(num int, w http.ResponseWriter, req *http.Request) {
 	err := a.db.Preload(clause.Associations).
 		First(&order, vars["id"]).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
diff --git a/api/product.go b/api/product.go
index 07a8ca3..e775a59 100644
--- a/api/product.go
+++ b/api/product.go
@@ -2,6 +2,7 @@ package api
 
 import (
 	"encoding/json"
+	"errors"
 	"log"
 	"net/http"
 
@@ -65,7 +66,7 @@ func (a *api) GetProduct(w http.ResponseWriter, req *http.Request) {
 	var product Product
 	err := a.db.Where("code = ?", vars["code"]).First(&product).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
@@ -107,7 +108,7 @@ func (a *api) UpdateProduct(w http.ResponseWriter, req *http.Request) {
 	var dbProduct Product
 	err = a.db.Where("code = ?", vars["code"]).First(&dbProduct).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
diff --git a/api/transaction.go b/api/transaction.go
index 2c58a85..f1bd209 100644
--- a/api/transaction.go
+++ b/api/transaction.go
@@ -2,6 +2,7 @@ package api
 
 import (
 	"encoding/json"
+	"errors"
 	"fmt"
 	"log"
 	"net/http"
@@ -54,7 +55,7 @@ func (a *api) GetTransaction(num int, role string, w http.ResponseWriter, req *h
 		Preload(clause.Associations).
 		First(&transaction, vars["id"]).Error
 	if err != nil {
-		if err.Error() == "record not found" {
+		if errors.Is(err, gorm.ErrRecordNotFound) {
 			w.WriteHeader(http.StatusNotFound)
 			return
 		}
-- 
GitLab