Skip to content

Commit b7cdcb6

Browse files
committed
重构
1 parent d570364 commit b7cdcb6

8 files changed

Lines changed: 51 additions & 110 deletions

File tree

common/version.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ var (
88
AppName = "devops-api"
99

1010
// AppVersion 程序版本号
11-
AppVersion = "0.1.0"
11+
AppVersion = "2.0.0"
1212

1313
// AppDescription 程序描述
1414
AppDescription = "happy with devops-api"
@@ -17,7 +17,7 @@ var (
1717
CommitHash = ""
1818

1919
// BuildDate 编译日期
20-
BuildDate = "2018-03-05"
20+
BuildDate = "2018-08-24"
2121

2222
// Author 作者
2323
Author = "helei"

controllers/common.go

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,26 @@ var (
2525
TokenAuthError = "DEVOPS-API-TOKEN auth fail"
2626
)
2727

28+
type StringMap map[string]interface{}
29+
2830
// BaseController 基础控制器
2931
type BaseController struct {
3032
beego.Controller
3133
}
3234

33-
func (b *BaseController) LogInfo(entryType string, msg map[string]interface{}) {
35+
func (b *BaseController) LogInfo(entryType string, msg StringMap) {
3436
common.GetLogger().Info(msg, entryType)
3537
}
3638

37-
func (b *BaseController) LogError(entryType string, msg map[string]interface{}) {
39+
func (b *BaseController) LogError(entryType string, msg StringMap) {
40+
if _, ok := msg["requestId"]; !ok {
41+
msg["requestId"] = b.Data[UniQueIDName]
42+
}
43+
44+
if _, ok := msg["statuscode"]; !ok {
45+
msg["statuscode"] = 1
46+
}
47+
3848
common.GetLogger().Error(msg, entryType)
3949
}
4050

@@ -69,8 +79,6 @@ func (b *BaseController) JsonOK(entryType string, data interface{}) {
6979
b.json(entryType, "", 0, data)
7080
}
7181

72-
type NullStringMap map[string]interface{}
73-
7482
// Prepare 覆盖Controller的方法
7583
func (b *BaseController) Prepare() {
7684

@@ -97,32 +105,32 @@ func (b *BaseController) Prepare() {
97105
// 获取 DEVOPS-API-TOKEN 头信息
98106
token := b.Ctx.Input.Header("DEVOPS-API-TOKEN")
99107
if token == "" {
100-
b.JsonError("JWToken Auth", NeedTokenError, NullStringMap{})
108+
b.JsonError("JWToken Auth", NeedTokenError, StringMap{})
101109
b.StopRun()
102110
}
103111
b.Data["token"] = token
104112

105113
// 验证 DEVOPS-API-TOKEN 是否有效
106114
jwtoken, err := common.NewToken()
107115
if err != nil {
108-
b.JsonError("JWToken Auth", TokenAuthError, NullStringMap{})
116+
b.JsonError("JWToken Auth", TokenAuthError, StringMap{})
109117
b.StopRun()
110118
}
111119

112120
// 验证是否是root token 不能使用root token
113121
isroot, err := jwtoken.IsRootToken(token)
114122
if err != nil {
115-
b.JsonError("JWToken Auth", TokenAuthError, NullStringMap{})
123+
b.JsonError("JWToken Auth", TokenAuthError, StringMap{})
116124
b.StopRun()
117125
}
118126
if isroot {
119-
b.JsonError("JWToken Auth", fmt.Sprintf("%s", TokenAuthError, "can't use root token"), NullStringMap{})
127+
b.JsonError("JWToken Auth", fmt.Sprintf("%s", TokenAuthError, "can't use root token"), StringMap{})
120128
b.StopRun()
121129
}
122130

123131
_, err = jwtoken.IsTokenValid(token)
124132
if err != nil {
125-
b.JsonError("JWToken Auth", TokenAuthError, NullStringMap{})
133+
b.JsonError("JWToken Auth", TokenAuthError, StringMap{})
126134
b.StopRun()
127135
}
128136
}

controllers/holiday.go

Lines changed: 7 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,55 +8,25 @@ import (
88

99
// Post 接收中国的节假日安排, 为判断节假日和工作日准备
1010
func (h *HolidayController) Post() {
11-
requestID := h.Data["RequestID"].(string)
12-
holidayLog := map[string]interface{}{
13-
"entryType": "setting holiday/workday",
14-
"requestID": requestID,
15-
}
11+
entryType := "Setting Holiday/Workday"
1612
holiday := &common.HoliWorkday{}
1713
err := holiday.Setting(h.Ctx.Input.RequestBody)
1814
if err != nil {
19-
holidayLog["statuscode"] = 1
20-
holidayLog["errmsg"] = fmt.Sprintf("%s", err)
21-
holidayLog["result"] = "error"
22-
common.GetLogger().Error(holidayLog, "设置节假日和工作日")
23-
h.Data["json"] = holidayLog
24-
h.ServeJSON()
15+
h.JsonError(entryType, fmt.Sprintf("%s", err), StringMap{})
2516
return
2617
}
27-
28-
holidayLog["statuscode"] = 0
29-
holidayLog["errmsg"] = ""
30-
holidayLog["result"] = "ok"
31-
common.GetLogger().Info(holidayLog, "设置节假日和工作日")
32-
h.Data["json"] = holidayLog
33-
h.ServeJSON()
18+
h.JsonOK(entryType, StringMap{"setting": "ok"})
3419
}
3520

3621
// Get 接收一个日期,判断是节假日还是工作日
3722
func (h *HolidayController) Get() {
38-
requestID := h.Data["RequestID"].(string)
39-
holidayLog := map[string]interface{}{
40-
"entryType": "judgment holiday/workday",
41-
"requestID": requestID,
42-
}
43-
date := h.GetString("date")
23+
entryType := "Get Holiday/Workday"
24+
date := h.Ctx.Input.Param(":date")
4425
holiworkday := &common.HoliWorkday{}
4526
r, err := holiworkday.IsHoliWorkday(date)
4627
if err != nil {
47-
holidayLog["statuscode"] = 1
48-
holidayLog["errmsg"] = fmt.Sprintf("%s", err)
49-
common.GetLogger().Error(holidayLog, "判断节假日和工作日")
50-
h.Data["json"] = holidayLog
51-
h.ServeJSON()
28+
h.JsonError(entryType, fmt.Sprintf("%s", err), StringMap{})
5229
return
5330
}
54-
55-
holidayLog["statuscode"] = 0
56-
holidayLog["errmsg"] = ""
57-
holidayLog["date"] = date
58-
holidayLog["dateType"] = r
59-
common.GetLogger().Info(holidayLog, "判断节假日和工作日")
60-
h.Data["json"] = holidayLog
61-
h.ServeJSON()
31+
h.JsonOK(entryType, StringMap{"date": date, "dateType": r})
6232
}

controllers/md5.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
// Get 方法
88
func (m *MD5Controller) Get() {
9-
rawString := m.GetString("string")
9+
rawString := m.Ctx.Input.Param(":rawstr")
1010
rawStringMD5 := hltool.GetMD5(rawString)
1111
data := map[string]string{
1212
"rawString": rawString,

controllers/queryip.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import (
88
// Get Get方法
99
func (q *QueryIPController) Get() {
1010

11-
ip := q.GetString("ip")
11+
ip := q.Ctx.Input.Param(":ip")
1212
qip := common.NewQueryIP("data/ip2region.db")
1313
r, err := qip.Query(ip)
1414
if err != nil {
15-
q.JsonError("query ip", fmt.Sprintf("%s", err), NullStringMap{})
15+
q.JsonError("Query IP", fmt.Sprintf("%s", err), StringMap{})
1616
return
1717
}
1818

controllers/storepass.go

Lines changed: 17 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -7,90 +7,62 @@ import (
77
)
88

99
var (
10-
storePasswordCommonFields = map[string]interface{}{
11-
"entryType": "Store Password",
12-
}
10+
StorePasswordEntryType = "Store Password"
1311
)
1412

1513
// Update 密码管理 保存/更新密码
16-
func (m *StorePasswordController) Update() {
17-
reqID := m.Data["RequestID"].(string)
18-
storePasswordCommonFields["requestID"] = reqID
14+
func (m *StorePasswordController) Post() {
1915
man, err := common.NewManagePassword()
20-
logger := common.GetLogger()
2116
if err != nil {
22-
logger.Error(storePasswordCommonFields, fmt.Sprintf("error: %s", err))
23-
m.Data["json"] = map[string]interface{}{"error": fmt.Sprintf("error: %s", err), "requestID": reqID, "statuscode": 1}
24-
m.ServeJSON()
17+
m.JsonError(StorePasswordEntryType, fmt.Sprintf("error: %s", err), StringMap{})
2518
return
2619
}
2720
err = man.Update(m.Ctx.Input.RequestBody)
2821
if err != nil {
29-
logger.Error(storePasswordCommonFields, fmt.Sprintf("error: %s", err))
30-
m.Data["json"] = map[string]interface{}{"error": fmt.Sprintf("error: %s", err), "requestID": reqID, "statuscode": 1}
31-
m.ServeJSON()
22+
m.JsonError(StorePasswordEntryType, fmt.Sprintf("error: %s", err), StringMap{})
3223
return
3324
}
34-
logger.Info(storePasswordCommonFields, fmt.Sprintf("IP: %s, 更新密码成功.", m.Data["RemoteIP"]))
35-
m.Data["json"] = map[string]interface{}{"update": true, "requestID": reqID, "statuscode": 0}
36-
m.ServeJSON()
25+
m.JsonOK(StorePasswordEntryType, StringMap{"update": "ok"})
3726
}
3827

3928
// Get 获取密码
4029
func (m *StorePasswordController) Get() {
41-
reqID := m.Data["RequestID"].(string)
42-
storePasswordCommonFields["requestID"] = reqID
4330
man, err := common.NewManagePassword()
44-
logger := common.GetLogger()
4531
if err != nil {
46-
logger.Error(storePasswordCommonFields, fmt.Sprintf("error: %s", err))
32+
m.LogError(StorePasswordEntryType, StringMap{"errmsg": fmt.Sprintf("error: %s", err)})
4733
return
4834
}
49-
ids := m.GetString("id")
35+
//ids := m.GetString("id")
36+
ids := m.Ctx.Input.Param(":id")
5037
if ids == "" {
51-
m.Data["json"] = map[string]interface{}{"error": "标识不能为空", "requestID": reqID, "statuscode": 1}
52-
m.ServeJSON()
38+
m.JsonError(StorePasswordEntryType, "标识不能为空", StringMap{})
5339
return
5440
}
5541
result, err := man.Get(strings.Split(ids, ","))
5642
if err != nil {
57-
logger.Error(storePasswordCommonFields, fmt.Sprintf("error: %s", err))
58-
m.Data["json"] = map[string]interface{}{"error": fmt.Sprintf("error: %s", err), "requestID": reqID, "statuscode": 1}
59-
m.ServeJSON()
43+
m.JsonError(StorePasswordEntryType, fmt.Sprintf("error: %s", err), StringMap{})
6044
return
6145
}
62-
logger.Info(storePasswordCommonFields, fmt.Sprintf("IP: %s, 获取标识: %s 的密码成功", m.Data["RemoteIP"], ids))
63-
m.Data["json"] = map[string]interface{}{"get": true, "requestID": reqID, "statuscode": 0, "password": result}
64-
m.ServeJSON()
46+
m.JsonOK(StorePasswordEntryType, StringMap{"password": result})
6547
}
6648

6749
// Delete 密码管理 删除密码
6850
func (m *StorePasswordController) Delete() {
69-
reqID := m.Data["RequestID"].(string)
70-
storePasswordCommonFields["requestID"] = reqID
7151
man, err := common.NewManagePassword()
72-
logger := common.GetLogger()
7352
if err != nil {
74-
logger.Error(storePasswordCommonFields, fmt.Sprintf("%s", err))
75-
m.Data["json"] = map[string]interface{}{"error": fmt.Sprintf("%s", err), "requestID": reqID, "statuscode": 1}
76-
m.ServeJSON()
53+
m.JsonError(StorePasswordEntryType, fmt.Sprintf("error: %s", err), StringMap{})
7754
return
7855
}
79-
ids := m.GetString("id")
56+
//ids := m.GetString("id")
57+
ids := m.Ctx.Input.Param(":id")
8058
if ids == "" {
81-
m.Data["json"] = map[string]interface{}{"error": "标识不能为空", "requestID": reqID, "statuscode": 1}
82-
m.ServeJSON()
59+
m.JsonError(StorePasswordEntryType, "标识不能为空", StringMap{})
8360
return
8461
}
8562
err = man.Delete(strings.Split(ids, ","))
8663
if err != nil {
87-
logger.Error(storePasswordCommonFields, fmt.Sprintf("error: %s", err))
88-
m.Data["json"] = map[string]interface{}{"error": fmt.Sprintf("error: %s", err), "requestID": reqID, "statuscode": 1}
89-
m.ServeJSON()
64+
m.JsonError(StorePasswordEntryType, fmt.Sprintf("error: %s", err), StringMap{})
9065
return
9166
}
92-
logger.Info(storePasswordCommonFields, fmt.Sprintf("IP: %s, 删除密码成功: %s", m.Data["RemoteIP"], ids))
93-
m.Data["json"] = map[string]interface{}{"delete": true, "requestID": reqID, "statuscode": 0, "id": ids}
94-
m.ServeJSON()
95-
67+
m.JsonOK(StorePasswordEntryType, StringMap{"delete": "ok", "id": ids})
9668
}

controllers/version.go

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,9 @@ package controllers
22

33
import (
44
"devops-api/common"
5-
"fmt"
65
)
76

87
// Get 获取程序版本号
98
func (v *VersionController) Get() {
10-
v.Data["json"] = common.GetVersion()
11-
versionFields := map[string]interface{}{
12-
"entryType": "Get App Version",
13-
"requestID": v.Data["RequestID"].(string),
14-
}
15-
common.GetLogger().Info(versionFields, fmt.Sprintf("IP(%s)获取程序版本号.", v.Data["RemoteIP"]))
16-
v.ServeJSON()
9+
v.JsonOK("Get App Version", common.GetVersion())
1710
}

routers/router.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,23 +26,21 @@ func init() {
2626
),
2727
),
2828
beego.NSNamespace("/md5",
29-
beego.NSRouter("", &controllers.MD5Controller{}),
29+
beego.NSRouter("/:rawstr", &controllers.MD5Controller{}),
3030
),
3131
beego.NSNamespace("/twostepauth",
3232
beego.NSRouter("/enable", &controllers.TwoStepAuthController{}, "get:Enable"),
3333
beego.NSRouter("/auth", &controllers.TwoStepAuthController{}, "post:Auth"),
3434
beego.NSRouter("/disable", &controllers.TwoStepAuthController{}, "get:Disable"),
3535
),
3636
beego.NSNamespace("/storepass",
37-
beego.NSRouter("/update", &controllers.StorePasswordController{}, "post:Update"),
38-
beego.NSRouter("/delete", &controllers.StorePasswordController{}, "get:Delete"),
39-
beego.NSRouter("/get", &controllers.StorePasswordController{}, "get:Get"),
37+
beego.NSRouter("/?:id(.+)", &controllers.StorePasswordController{}),
4038
),
4139
beego.NSNamespace("/holiworkday",
42-
beego.NSRouter("", &controllers.HolidayController{}),
40+
beego.NSRouter("/?:date", &controllers.HolidayController{}),
4341
),
4442
beego.NSNamespace("/queryip",
45-
beego.NSRouter("", &controllers.QueryIPController{}),
43+
beego.NSRouter("/:ip", &controllers.QueryIPController{}),
4644
),
4745
),
4846
)

0 commit comments

Comments
 (0)