From 3b1b9938d3a0fca5da689092c9a302d09380f6c9 Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Fri, 11 Jun 2021 15:46:30 +0800 Subject: [PATCH] fix: some return error --- internal/controller/api/v1/auth.go | 8 ++++--- internal/controller/api/v1/basic/vendor.go | 27 ++++++++++++++++------ internal/dao/auth.go | 2 +- internal/dao/vendor.go | 10 ++++++-- internal/model/auth.go | 11 ++++----- internal/model/basic/vendor.go | 11 ++++----- internal/model/model.go | 14 +++++++---- internal/service/auth.go | 17 ++++---------- pkg/errcode/errcode.go | 4 ++-- pkg/errcode/module_code.go | 14 +++++------ 10 files changed, 66 insertions(+), 52 deletions(-) diff --git a/internal/controller/api/v1/auth.go b/internal/controller/api/v1/auth.go index 98397bf..cde7ddc 100644 --- a/internal/controller/api/v1/auth.go +++ b/internal/controller/api/v1/auth.go @@ -1,7 +1,7 @@ /* * @Date: 2021-06-10 18:58:25 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 01:14:45 + * @LastEditTime: 2021-06-11 15:44:18 * @FilePath: /potato/internal/controller/api/v1/auth.go */ package v1 @@ -33,7 +33,7 @@ func GetAuth(c *gin.Context) { } svc := service.New(c.Request.Context()) - err := svc.CheckAuth(¶m) + auth, err := svc.CheckAuth(¶m) if err != nil { global.GO_LOG.Sugar().Errorf("svc.CheckAuth err: %v", err) response.ToErrorResponse(errcode.UnauthorizedAuthNotExist) @@ -48,6 +48,8 @@ func GetAuth(c *gin.Context) { } response.ToResponse(gin.H{ - "token": token, + "app_key": auth.AppKey, + "app_secret": auth.AppSecret, + "token": token, }) } diff --git a/internal/controller/api/v1/basic/vendor.go b/internal/controller/api/v1/basic/vendor.go index 20e6d38..f2b0e83 100644 --- a/internal/controller/api/v1/basic/vendor.go +++ b/internal/controller/api/v1/basic/vendor.go @@ -1,13 +1,14 @@ /* * @Date: 2021-03-21 19:54:57 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 01:17:44 + * @LastEditTime: 2021-06-11 15:22:16 * @FilePath: /potato/internal/controller/api/v1/basic/vendor.go */ package basic import ( "github.com/gin-gonic/gin" + "github.com/jinzhu/gorm" "github.com/viletyy/potato/global" "github.com/viletyy/potato/internal/service" "github.com/viletyy/potato/pkg/app" @@ -158,9 +159,15 @@ func (vendor Vendor) Update(c *gin.Context) { svc := service.New(c.Request.Context()) dbVendor, err := svc.UpdateVendor(¶m) if err != nil { - global.GO_LOG.Sugar().Errorf("svc.UpdateVendor err: %v", err) - response.ToErrorResponse(errcode.ErrorUpdateVendorFail) - return + if err == gorm.ErrRecordNotFound { + global.GO_LOG.Sugar().Errorf("svc.UpdateVendor err: %v", err) + response.ToErrorResponse(errcode.ErrorGetVendorFail) + return + } else { + global.GO_LOG.Sugar().Errorf("svc.UpdateVendor err: %v", err) + response.ToErrorResponse(errcode.ErrorUpdateVendorFail) + return + } } response.ToResponse(dbVendor) @@ -187,9 +194,15 @@ func (vendor Vendor) Delete(c *gin.Context) { svc := service.New(c.Request.Context()) err = svc.DeleteVendor(¶m) if err != nil { - global.GO_LOG.Sugar().Errorf("svc.DeleteVendor err: %v", err) - response.ToErrorResponse(errcode.ErrorDeleteVendorFail) - return + if err == gorm.ErrRecordNotFound { + global.GO_LOG.Sugar().Errorf("svc.DeleteVendor err: %v", err) + response.ToErrorResponse(errcode.ErrorGetVendorFail) + return + } else { + global.GO_LOG.Sugar().Errorf("svc.DeleteVendor err: %v", err) + response.ToErrorResponse(errcode.ErrorDeleteVendorFail) + return + } } response.ToErrorResponse(errcode.Success) diff --git a/internal/dao/auth.go b/internal/dao/auth.go index ce829aa..5e5d7e5 100644 --- a/internal/dao/auth.go +++ b/internal/dao/auth.go @@ -1,7 +1,7 @@ /* * @Date: 2021-06-10 18:54:19 * @LastEditors: viletyy - * @LastEditTime: 2021-06-10 18:55:32 + * @LastEditTime: 2021-06-11 15:41:34 * @FilePath: /potato/internal/dao/auth.go */ package dao diff --git a/internal/dao/vendor.go b/internal/dao/vendor.go index 73b9ff4..0af98d4 100644 --- a/internal/dao/vendor.go +++ b/internal/dao/vendor.go @@ -1,7 +1,7 @@ /* * @Date: 2021-06-10 22:53:09 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 10:37:45 + * @LastEditTime: 2021-06-11 10:54:38 * @FilePath: /potato/internal/dao/vendor.go */ package dao @@ -61,5 +61,11 @@ func (d *Dao) DeleteVendor(id int64) error { Model: &model.Model{ID: id}, } - return vendor.Delete(d.Engine) + dbVendor, err := vendor.Get(d.Engine) + + if err != nil { + return err + } + + return dbVendor.Delete(d.Engine) } diff --git a/internal/model/auth.go b/internal/model/auth.go index 0c6b259..b9427a2 100644 --- a/internal/model/auth.go +++ b/internal/model/auth.go @@ -1,7 +1,7 @@ /* * @Date: 2021-06-10 18:21:37 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 10:38:15 + * @LastEditTime: 2021-06-11 15:41:04 * @FilePath: /potato/internal/model/auth.go */ package model @@ -14,12 +14,9 @@ type Auth struct { AppSecret string `json:"app_secret"` } -func (a Auth) Get(db *gorm.DB) (Auth, error) { - var auth Auth - db = db.Where("app_key = ? AND app_secret = ?", a.AppKey, a.AppSecret) - err := db.First(&auth).Error - if err != nil && err != gorm.ErrRecordNotFound { - return auth, err +func (a Auth) Get(db *gorm.DB) (auth Auth, err error) { + if notFound := db.Where("app_key = ? AND app_secret = ?", a.AppKey, a.AppSecret).First(&auth).RecordNotFound(); notFound { + return a, gorm.ErrRecordNotFound } return auth, nil diff --git a/internal/model/basic/vendor.go b/internal/model/basic/vendor.go index 56987ff..0ecbcc1 100644 --- a/internal/model/basic/vendor.go +++ b/internal/model/basic/vendor.go @@ -1,7 +1,7 @@ /* * @Date: 2021-03-21 19:54:57 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 10:30:18 + * @LastEditTime: 2021-06-11 11:01:28 * @FilePath: /potato/internal/model/basic/vendor.go */ package basic @@ -51,9 +51,8 @@ func (v Vendor) List(db *gorm.DB, pageOffset, pageSize int) (vendors []Vendor, e } func (v Vendor) Get(db *gorm.DB) (vendor Vendor, err error) { - err = db.Where("id = ?", v.ID).First(&vendor).Error - if err != nil && err != gorm.ErrRecordNotFound { - return + if notFound := db.Where("id = ?", v.ID).First(&vendor).RecordNotFound(); notFound { + return v, gorm.ErrRecordNotFound } return vendor, nil @@ -68,6 +67,6 @@ func (v *Vendor) Update(db *gorm.DB) error { return err } -func (v Vendor) Delete(db *gorm.DB) error { - return db.Where("id = ? AND deleted_at = ?", v.ID, nil).Delete(&v).Error +func (v *Vendor) Delete(db *gorm.DB) error { + return db.Where("id = ?", v.ID).Delete(v).Error } diff --git a/internal/model/model.go b/internal/model/model.go index a482831..27178e8 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -1,10 +1,16 @@ +/* + * @Date: 2021-03-22 17:50:15 + * @LastEditors: viletyy + * @LastEditTime: 2021-06-11 10:46:51 + * @FilePath: /potato/internal/model/model.go + */ package model import "time" type Model struct { - ID int64 `gorm:"primary_key" json:"id"` - CreatedAt time.Time `json:"created_at"` - UpdatedAt time.Time `json:"updated_at"` - DeletedAt *time.Time `gorm:"index" json:"-"` + ID int64 `gorm:"primary_key" json:"id"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` + DeletedAt time.Time `gorm:"index" json:"-"` } diff --git a/internal/service/auth.go b/internal/service/auth.go index e9abc4a..8c4213b 100644 --- a/internal/service/auth.go +++ b/internal/service/auth.go @@ -1,27 +1,18 @@ /* * @Date: 2021-06-10 18:55:46 * @LastEditors: viletyy - * @LastEditTime: 2021-06-11 01:03:11 + * @LastEditTime: 2021-06-11 15:43:31 * @FilePath: /potato/internal/service/auth.go */ package service -import "errors" +import "github.com/viletyy/potato/internal/model" type AuthRequest struct { AppKey string `form:"app_key" validate:"required"` AppSecret string `form:"app_secret" validate:"required"` } -func (svc *Service) CheckAuth(param *AuthRequest) error { - auth, err := svc.dao.GetAuth(param.AppKey, param.AppSecret) - if err != nil { - return err - } - - if auth.ID > 0 { - return nil - } - - return errors.New("auth info does not exist.") +func (svc *Service) CheckAuth(param *AuthRequest) (model.Auth, error) { + return svc.dao.GetAuth(param.AppKey, param.AppSecret) } diff --git a/pkg/errcode/errcode.go b/pkg/errcode/errcode.go index a4c9937..aa8d201 100644 --- a/pkg/errcode/errcode.go +++ b/pkg/errcode/errcode.go @@ -1,7 +1,7 @@ /* * @Date: 2021-06-10 16:30:10 * @LastEditors: viletyy - * @LastEditTime: 2021-06-10 21:43:05 + * @LastEditTime: 2021-06-11 15:36:11 * @FilePath: /potato/pkg/errcode/errcode.go */ package errcode @@ -59,5 +59,5 @@ func (e *Error) StatusCode() int { return http.StatusTooManyRequests } - return http.StatusInternalServerError + return http.StatusBadRequest } diff --git a/pkg/errcode/module_code.go b/pkg/errcode/module_code.go index 000069a..248058f 100644 --- a/pkg/errcode/module_code.go +++ b/pkg/errcode/module_code.go @@ -1,16 +1,16 @@ /* * @Date: 2021-06-10 23:09:09 * @LastEditors: viletyy - * @LastEditTime: 2021-06-10 23:26:27 + * @LastEditTime: 2021-06-11 15:16:59 * @FilePath: /potato/pkg/errcode/module_code.go */ package errcode var ( - ErrorGetVendorListFail = NewError(21001, "获取系统厂商列表失败") - ErrorGetVendorFail = NewError(21002, "获取系统厂商失败") - ErrorCreateVendorFail = NewError(21003, "创建系统厂商失败") - ErrorUpdateVendorFail = NewError(21004, "更新系统厂商失败") - ErrorDeleteVendorFail = NewError(21005, "删除系统厂商失败") - ErrorCountVendorFail = NewError(21006, "统计系统厂商失败") + ErrorGetVendorListFail = NewError(20101, "获取系统厂商列表失败") + ErrorGetVendorFail = NewError(20102, "获取系统厂商失败") + ErrorCreateVendorFail = NewError(20103, "创建系统厂商失败") + ErrorUpdateVendorFail = NewError(20104, "更新系统厂商失败") + ErrorDeleteVendorFail = NewError(20105, "删除系统厂商失败") + ErrorCountVendorFail = NewError(20106, "统计系统厂商失败") )