Skip to content

Commit e3d99ca

Browse files
authored
Merge pull request #18 from infra-io/develop
v0.5.1
2 parents 5454c94 + ae3c49c commit e3d99ca

File tree

19 files changed

+108
-146
lines changed

19 files changed

+108
-146
lines changed

HISTORY.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
## ✒ 历史版本的特性介绍 (Features in old versions)
22

3+
### v0.5.1
4+
5+
> 此版本发布于 2024-08-11
6+
7+
* 重构错误处理
8+
39
### v0.5.0
410

511
> 此版本发布于 2024-08-08

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.PHONY: all fmt test build clean proto postar postaradmin
22

3-
VERSION=v0.5.0
3+
VERSION=v0.5.1
44

55
all:
66
make test && make clean && make build

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ require (
88
github.com/BurntSushi/toml v1.3.2
99
github.com/FishGoddess/cachego v0.6.1
1010
github.com/FishGoddess/cryptox v0.4.3
11-
github.com/FishGoddess/errors v0.5.2
11+
github.com/FishGoddess/errors v0.7.0
1212
github.com/FishGoddess/logit v1.8.1
1313
github.com/go-sql-driver/mysql v1.7.1
1414
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ github.com/FishGoddess/cachego v0.6.1 h1:mbytec3loqw5dcO177LyRGyStKG0AngP5g2GR3S
44
github.com/FishGoddess/cachego v0.6.1/go.mod h1:VLSMwWRlRPazjGYer8pq+4aDrIe1Otj3Yy9HAb0eo3c=
55
github.com/FishGoddess/cryptox v0.4.3 h1:EP1732fzkkgWKi7RSdVje+/pN8WeYFtzdHhJG4JcSs4=
66
github.com/FishGoddess/cryptox v0.4.3/go.mod h1:1j6yGIdxvxJ/V0XThrGhZ+c0NzMi0WxO7WeDFTfNyIM=
7-
github.com/FishGoddess/errors v0.5.2 h1:PYjU6Xb72NXbSKUlwNzHszdUz9/VGS8/CBVAh0U/IwM=
8-
github.com/FishGoddess/errors v0.5.2/go.mod h1:gXd4tNYX6ZFr2XmelF2DHn2uF7oTAi+O9ToJDjNeneE=
7+
github.com/FishGoddess/errors v0.7.0 h1:yPNSUvvD9xRnhHlZ6SAo/yAjxUGceD/W1ITjhPWu/c4=
8+
github.com/FishGoddess/errors v0.7.0/go.mod h1:sjLqiuMcGykL4Wl7/wI13SJF4i+ZfL1ThSlPikZLLh0=
99
github.com/FishGoddess/logit v1.8.1 h1:FQM3A2KHZHT88DmcGibWO2ho69jhwJSYswa6JtsAzGo=
1010
github.com/FishGoddess/logit v1.8.1/go.mod h1:6IAtVuIW3AaPTBn2NDfBnML7t0F7/wj1FFeWIPLJy98=
1111
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=

internal/postar-admin/server/grpc.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func checkSpaceInterceptor(spaceService service.SpaceService) grpc.UnaryServerIn
123123

124124
if space.Token != spaceToken {
125125
err = errors.New("wrong token")
126-
return nil, errors.Forbidden(err, errors.WithMsg("业务空间的令牌错误"))
126+
return nil, errors.Forbidden("业务空间 (%d)%s 的令牌错误", space.ID, space.Name)
127127
}
128128

129129
return handler(ctx, req)

internal/postar-admin/service/account.go

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package service
66

77
import (
88
"context"
9-
"fmt"
109
"strings"
1110
"time"
1211

@@ -40,28 +39,23 @@ func NewAccountService(conf *config.PostarAdminConfig, accountStore AccountStore
4039

4140
func (das *defaultAccountService) checkCreateAccountParams(account *model.Account) error {
4241
if strings.TrimSpace(account.Host) == "" {
43-
err := errors.New("trim account.Host == ''")
44-
return errors.BadRequest(err, errors.WithMsg("账号主机不能为空"))
42+
return errors.BadRequest("账号主机不能为空")
4543
}
4644

4745
if account.Port <= 0 {
48-
err := errors.New("account.Port <= 0")
49-
return errors.BadRequest(err, errors.WithMsg("账号端口非法"))
46+
return errors.BadRequest("账号端口需要大于 0")
5047
}
5148

5249
if strings.TrimSpace(account.Username) == "" {
53-
err := errors.New("trim account.Username == ''")
54-
return errors.BadRequest(err, errors.WithMsg("账号用户名不能为空"))
50+
return errors.BadRequest("账号用户名不能为空")
5551
}
5652

5753
if account.Password == "" {
58-
err := errors.New("account.Password == ''")
59-
return errors.BadRequest(err, errors.WithMsg("账号密码不能为空"))
54+
return errors.BadRequest("账号密码不能为空")
6055
}
6156

6257
if account.SMTPAuth <= 0 {
63-
err := errors.New("account.SMTPAuth <= 0")
64-
return errors.BadRequest(err, errors.WithMsg("未指定 SMTP 认证方式"))
58+
return errors.BadRequest("未指定 SMTP 认证方式")
6559
}
6660

6761
return nil
@@ -99,13 +93,11 @@ func (das *defaultAccountService) CreateAccount(ctx context.Context, spaceID int
9993

10094
func (das *defaultAccountService) checkUpdateAccountParams(account *model.Account) error {
10195
if account.ID <= 0 {
102-
err := fmt.Errorf("account.ID %d <= 0", account.ID)
103-
return errors.BadRequest(err, errors.WithMsg("账号编号需要大于 0"))
96+
return errors.BadRequest("账号编号需要大于 0")
10497
}
10598

10699
if account.State > 0 && !account.State.Valid() {
107-
err := fmt.Errorf("account.State %d not valid", account.State)
108-
return errors.BadRequest(err, errors.WithMsg("账号状态无效"))
100+
return errors.BadRequest("账号状态 %d 无效", account.State)
109101
}
110102

111103
return nil
@@ -142,10 +134,9 @@ func (das *defaultAccountService) UpdateAccount(ctx context.Context, spaceID int
142134
return account, nil
143135
}
144136

145-
func (das *defaultAccountService) checkGetAccountParams(spaceID int32, accountID int32) error {
137+
func (das *defaultAccountService) checkGetAccountParams(accountID int32) error {
146138
if accountID <= 0 {
147-
err := fmt.Errorf("accountID %d <= 0", accountID)
148-
return errors.BadRequest(err, errors.WithMsg("账号编号非法"))
139+
return errors.BadRequest("账号编号需要大于 0")
149140
}
150141

151142
return nil
@@ -154,7 +145,7 @@ func (das *defaultAccountService) checkGetAccountParams(spaceID int32, accountID
154145
func (das *defaultAccountService) GetAccount(ctx context.Context, spaceID int32, accountID int32, withPassword bool) (*model.Account, error) {
155146
logger := logit.FromContext(ctx)
156147

157-
if err := das.checkGetAccountParams(spaceID, accountID); err != nil {
148+
if err := das.checkGetAccountParams(accountID); err != nil {
158149
logger.Error("check get account params failed", "err", err, "account_id", accountID)
159150
return nil, err
160151
}
@@ -182,18 +173,15 @@ func (das *defaultAccountService) GetAccount(ctx context.Context, spaceID int32,
182173

183174
func (das *defaultAccountService) checkListAccountsParams(pageSize int32, filter *model.ListAccountsFilter) error {
184175
if pageSize < minPageSize || pageSize > maxPageSize {
185-
err := fmt.Errorf("pageSize %d not in [%d, %d]", pageSize, minPageSize, maxPageSize)
186-
return errors.BadRequest(err, errors.WithMsg("分页大小需要位于区间 [%d, %d] 内", minPageSize, maxPageSize))
176+
return errors.BadRequest("分页大小 %d 需要位于区间 [%d, %d] 内", pageSize, minPageSize, maxPageSize)
187177
}
188178

189179
if filter.AccountID < 0 {
190-
err := fmt.Errorf("filter.AccountID %d < 0", filter.AccountID)
191-
return errors.BadRequest(err, errors.WithMsg("过滤的账号编号非法"))
180+
return errors.BadRequest("账号编号不能为负数")
192181
}
193182

194183
if filter.AccountState > 0 && !filter.AccountState.Valid() {
195-
err := fmt.Errorf("filter.AccountState %d not valid", filter.AccountState)
196-
return errors.BadRequest(err, errors.WithMsg("过滤的账号状态非法"))
184+
return errors.BadRequest("账号状态 %d 无效", filter.AccountState)
197185
}
198186

199187
return nil

internal/postar-admin/service/space.go

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package service
66

77
import (
88
"context"
9-
"fmt"
109
"strings"
1110
"time"
1211

@@ -41,8 +40,7 @@ func NewSpaceService(conf *config.PostarAdminConfig, spaceStore SpaceStore) Spac
4140

4241
func (dss *defaultSpaceService) checkCreateSpaceParams(space *model.Space) error {
4342
if strings.TrimSpace(space.Name) == "" {
44-
err := errors.New("trim space.Name == ''")
45-
return errors.BadRequest(err, errors.WithMsg("空间名称不能为空"))
43+
return errors.BadRequest("业务空间名称不能为空")
4644
}
4745

4846
return nil
@@ -80,18 +78,15 @@ func (dss *defaultSpaceService) CreateSpace(ctx context.Context, space *model.Sp
8078

8179
func (dss *defaultSpaceService) checkUpdateSpaceParams(space *model.Space) error {
8280
if space.ID <= 0 {
83-
err := fmt.Errorf("space.ID %d <= 0", space.ID)
84-
return errors.BadRequest(err, errors.WithMsg("空间编号需要大于 0"))
81+
return errors.BadRequest("业务空间编号需要大于 0")
8582
}
8683

8784
if strings.TrimSpace(space.Name) == "" {
88-
err := errors.New("trim space.Name == ''")
89-
return errors.BadRequest(err, errors.WithMsg("空间名称不能为空"))
85+
return errors.BadRequest("业务空间名称不能为空")
9086
}
9187

9288
if space.State > 0 && !space.State.Valid() {
93-
err := fmt.Errorf("space.State %d not valid", space.State)
94-
return errors.BadRequest(err, errors.WithMsg("账号状态无效"))
89+
return errors.BadRequest("业务空间状态 %d 无效", space.State)
9590
}
9691

9792
return nil
@@ -118,8 +113,7 @@ func (dss *defaultSpaceService) UpdateSpace(ctx context.Context, space *model.Sp
118113

119114
func (dss *defaultSpaceService) checkGetSpaceParams(spaceID int32) error {
120115
if spaceID <= 0 {
121-
err := fmt.Errorf("spaceID %d <= 0", spaceID)
122-
return errors.BadRequest(err, errors.WithMsg("空间编号非法"))
116+
return errors.BadRequest("业务空间编号需要大于 0")
123117
}
124118

125119
return nil
@@ -156,18 +150,15 @@ func (dss *defaultSpaceService) GetSpace(ctx context.Context, spaceID int32, wit
156150

157151
func (dss *defaultSpaceService) checkListSpacesParams(pageSize int32, filter *model.ListSpacesFilter) error {
158152
if pageSize < minPageSize || pageSize > maxPageSize {
159-
err := fmt.Errorf("pageSize %d not in [%d, %d]", pageSize, minPageSize, maxPageSize)
160-
return errors.BadRequest(err, errors.WithMsg("分页大小需要位于区间 [%d, %d] 内", minPageSize, maxPageSize))
153+
return errors.BadRequest("分页大小 %d 需要位于区间 [%d, %d] 内", pageSize, minPageSize, maxPageSize)
161154
}
162155

163156
if filter.SpaceID < 0 {
164-
err := fmt.Errorf("filter.SpaceID %d < 0", filter.SpaceID)
165-
return errors.BadRequest(err, errors.WithMsg("过滤的空间编号非法"))
157+
return errors.BadRequest("业务空间编号不能为负数")
166158
}
167159

168160
if filter.SpaceState > 0 && !filter.SpaceState.Valid() {
169-
err := fmt.Errorf("filter.SpaceState %d not valid", filter.SpaceState)
170-
return errors.BadRequest(err, errors.WithMsg("过滤的空间状态非法"))
161+
return errors.BadRequest("业务空间状态 %d 无效", filter.SpaceState)
171162
}
172163

173164
return nil

internal/postar-admin/service/template.go

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package service
66

77
import (
88
"context"
9-
"fmt"
109
"strings"
1110
"time"
1211

@@ -40,23 +39,19 @@ func NewTemplateService(conf *config.PostarAdminConfig, templateStore TemplateSt
4039

4140
func (dts *defaultTemplateService) checkCreateTemplateParams(template *model.Template) error {
4241
if template.AccountID <= 0 {
43-
err := errors.New("template.AccountID <= 0")
44-
return errors.BadRequest(err, errors.WithMsg("模板绑定的账号编号非法"))
42+
return errors.BadRequest("模板绑定的账号编号需要大于 0")
4543
}
4644

4745
if strings.TrimSpace(template.Name) == "" {
48-
err := errors.New("trim template.Name == ''")
49-
return errors.BadRequest(err, errors.WithMsg("模板名称不能为空"))
46+
return errors.BadRequest("模板名称不能为空")
5047
}
5148

5249
if strings.TrimSpace(template.Email.Subject) == "" {
53-
err := errors.New("trim template.Email.Subject == ''")
54-
return errors.BadRequest(err, errors.WithMsg("模板邮件主题不能为空"))
50+
return errors.BadRequest("模板邮件主题不能为空")
5551
}
5652

5753
if !template.Email.ContentType.Valid() {
58-
err := fmt.Errorf("template.Email.ContentType %d not valid", template.Email.ContentType)
59-
return errors.BadRequest(err, errors.WithMsg("模板邮件内容类型无效"))
54+
return errors.BadRequest("模板邮件内容类型 %d 无效", template.Email.ContentType)
6055
}
6156

6257
return nil
@@ -81,33 +76,27 @@ func (dts *defaultTemplateService) CreateTemplate(ctx context.Context, spaceID i
8176

8277
func (dts *defaultTemplateService) checkUpdateTemplateParams(template *model.Template) error {
8378
if template.ID <= 0 {
84-
err := errors.New("template.ID <= 0")
85-
return errors.BadRequest(err, errors.WithMsg("模板编号非法"))
79+
return errors.BadRequest("模板编号需要大于 0")
8680
}
8781

8882
if template.AccountID <= 0 {
89-
err := errors.New("template.AccountID <= 0")
90-
return errors.BadRequest(err, errors.WithMsg("模板绑定的账号编号非法"))
83+
return errors.BadRequest("模板绑定的账号编号需要大于 0")
9184
}
9285

9386
if strings.TrimSpace(template.Name) == "" {
94-
err := errors.New("trim template.Name == ''")
95-
return errors.BadRequest(err, errors.WithMsg("模板名称不能为空"))
87+
return errors.BadRequest("模板名称不能为空")
9688
}
9789

9890
if strings.TrimSpace(template.Email.Subject) == "" {
99-
err := errors.New("trim template.Email.Subject == ''")
100-
return errors.BadRequest(err, errors.WithMsg("模板邮件主题不能为空"))
91+
return errors.BadRequest("模板邮件主题不能为空")
10192
}
10293

10394
if template.Email.ContentType > 0 && !template.Email.ContentType.Valid() {
104-
err := fmt.Errorf("template.Email.Content.Type %d not valid", template.Email.ContentType)
105-
return errors.BadRequest(err, errors.WithMsg("模板邮件内容类型无效"))
95+
return errors.BadRequest("模板邮件内容类型 %d 无效", template.Email.ContentType)
10696
}
10797

10898
if template.State > 0 && !template.State.Valid() {
109-
err := fmt.Errorf("template.State %d not valid", template.State)
110-
return errors.BadRequest(err, errors.WithMsg("模板状态无效"))
99+
return errors.BadRequest("模板状态 %d 无效", template.State)
111100
}
112101

113102
return nil
@@ -130,8 +119,7 @@ func (dts *defaultTemplateService) UpdateTemplate(ctx context.Context, spaceID i
130119

131120
func (dts *defaultTemplateService) checkGetTemplateParams(templateID int64) error {
132121
if templateID <= 0 {
133-
err := fmt.Errorf("templateID %d <= 0", templateID)
134-
return errors.BadRequest(err, errors.WithMsg("模板编号非法"))
122+
return errors.BadRequest("模板编号需要大于 0")
135123
}
136124

137125
return nil
@@ -150,23 +138,19 @@ func (dts *defaultTemplateService) GetTemplate(ctx context.Context, spaceID int3
150138

151139
func (dts *defaultTemplateService) checkListTemplatesParams(pageSize int32, filter *model.ListTemplatesFilter) error {
152140
if pageSize < minPageSize || pageSize > maxPageSize {
153-
err := fmt.Errorf("pageSize %d not in [%d, %d]", pageSize, minPageSize, maxPageSize)
154-
return errors.BadRequest(err, errors.WithMsg("分页大小需要位于区间 [%d, %d] 内", minPageSize, maxPageSize))
141+
return errors.BadRequest("分页大小 %d 需要位于区间 [%d, %d] 内", pageSize, minPageSize, maxPageSize)
155142
}
156143

157144
if filter.AccountID < 0 {
158-
err := fmt.Errorf("filter.AccountID %d < 0", filter.AccountID)
159-
return errors.BadRequest(err, errors.WithMsg("过滤的账号编号非法"))
145+
return errors.BadRequest("账号编号不能为负数")
160146
}
161147

162148
if filter.TemplateID < 0 {
163-
err := fmt.Errorf("filter.TemplateID %d < 0", filter.TemplateID)
164-
return errors.BadRequest(err, errors.WithMsg("过滤的模板编号非法"))
149+
return errors.BadRequest("模板编号不能为负数")
165150
}
166151

167152
if filter.TemplateState > 0 && !filter.TemplateState.Valid() {
168-
err := fmt.Errorf("filter.TemplateState %d not valid", filter.TemplateState)
169-
return errors.BadRequest(err, errors.WithMsg("过滤的模板状态非法"))
153+
return errors.BadRequest("模板状态 %d 无效", filter.TemplateState)
170154
}
171155

172156
return nil
@@ -198,8 +182,7 @@ func (dts *defaultTemplateService) ListTemplates(ctx context.Context, spaceID in
198182

199183
func (dts *defaultTemplateService) checkDeleteTemplateParams(templateID int64) error {
200184
if templateID <= 0 {
201-
err := fmt.Errorf("templateID %d <= 0", templateID)
202-
return errors.BadRequest(err, errors.WithMsg("模板编号非法"))
185+
return errors.BadRequest("模板编号需要大于 0")
203186
}
204187

205188
return nil

internal/postar-admin/store/account.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func (as *AccountStore) newAccount(row *stdsql.Row) (*model.Account, error) {
144144

145145
err := row.Scan(&account.ID, &account.Host, &account.Port, &account.Username, &account.Password, &account.SMTPAuth, &account.State, &account.CreateTime, &account.UpdateTime)
146146
if err == stdsql.ErrNoRows {
147-
return nil, errors.NotFound(err, errors.WithMsg("账号不存在"))
147+
return nil, errors.NotFound("账号不存在").With(err)
148148
}
149149

150150
return account, err

internal/postar-admin/store/space.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ func (ss *SpaceStore) newSpace(row *stdsql.Row) (*model.Space, error) {
123123

124124
err := row.Scan(&space.ID, &space.Name, &space.Token, &space.State, &space.CreateTime, &space.UpdateTime)
125125
if err == stdsql.ErrNoRows {
126-
return nil, errors.NotFound(err, errors.WithMsg("业务空间不存在"))
126+
return nil, errors.NotFound("业务空间不存在").With(err)
127127
}
128128

129129
return space, err

0 commit comments

Comments
 (0)