Skip to content

Commit

Permalink
Merge pull request #82 from homenoc/develop
Browse files Browse the repository at this point in the history
v3.2.0
  • Loading branch information
yoneyan authored Mar 22, 2021
2 parents ae8b2b3 + 9d18c25 commit ce2d2a5
Show file tree
Hide file tree
Showing 16 changed files with 981 additions and 114 deletions.
40 changes: 25 additions & 15 deletions pkg/api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,30 +151,40 @@ func AdminRestAPI() {
v1.PUT("/service/:id", service.UpdateAdmin)
v1.GET("/service", service.GetAllAdmin)
v1.GET("/service/:id", service.GetAdmin)
v1.PUT("/service/:id/ip/:ip_id", service.UpdateIP)

//
// JPNIC Admin
//
v1.POST("/service/:id/jpnic_admin", service.AddJPNICAdminAdmin)
v1.DELETE("/service/:id/jpnic_admin/:jpnic_id", service.DeleteJPNICAdminAdmin)
v1.PUT("/service/:id/jpnic_admin", service.UpdateJPNICAdminAdmin)

//
// JPNIC Admin
//
v1.POST("/service/:id/jpnic_tech", service.AddJPNICTechAdmin)
v1.DELETE("/service/:id/jpnic_tech/:jpnic_id", service.DeleteJPNICTechAdmin)
v1.PUT("/service/:id/jpnic_tech/:jpnic_id", service.UpdateJPNICTechAdmin)

//
// IP
//
v1.PUT("/service/:id/ip/:ip_id", service.UpdateIPAdmin)
v1.POST("/service/:id/ip", service.AddIPAdmin)
v1.DELETE("/service/:id/ip/:ip_id", service.DeleteIPAdmin)
v1.PUT("/ip/:id", ip.UpdateAdmin)

//
// IP
// Plan
//
v1.POST("/mail", mail.SendAdmin)
v1.POST("/plan", service.AddPlanAdmin)
v1.DELETE("/plan/:id", service.DeletePlanAdmin)
v1.PUT("/plan/:id", service.UpdatePlanAdmin)

////
//// JPNIC Admin
////
//v1.POST("/group/network/jpnic", jpnicAdmin.AddAdmin)
//v1.DELETE("/group/network/jpnic", jpnicAdmin.DeleteAdmin)
//v1.GET("/group/network/jpnic", jpnicAdmin.GetAdmin)
////
//// JPNIC Admin
////
//v1.POST("/group/network/jpnic", jpnicTech.AddAdmin)
//v1.DELETE("/group/network/jpnic", jpnicTech.DeleteAdmin)
//v1.GET("/group/network/jpnic", jpnicTech.GetAdmin)
//
// Mail
//
v1.POST("/mail", mail.SendAdmin)
}
}
ws := router.Group("/ws")
Expand Down
129 changes: 129 additions & 0 deletions pkg/api/core/group/service/jpnicAdmin/v0/slack.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
package v0

import (
"github.com/ashwanthkumar/slack-go-webhook"
"github.com/homenoc/dsbd-backend/pkg/api/core"
"github.com/homenoc/dsbd-backend/pkg/api/core/group"
"github.com/homenoc/dsbd-backend/pkg/api/core/tool/notification"
"strconv"
)

func noticeSlackAddAdmin(before, after core.Group) {
// 審査ステータスのSlack通知
attachment := slack.Attachment{}

attachment.AddField(slack.Field{Title: "Title", Value: "Group情報の更新"}).
AddField(slack.Field{Title: "申請者", Value: "管理者"}).
AddField(slack.Field{Title: "Group", Value: strconv.Itoa(int(before.ID)) + ":" + before.Org}).
AddField(slack.Field{Title: "更新状況", Value: changeTextAdmin(before, after)})
notification.SendSlack(notification.Slack{Attachment: attachment, ID: "main", Status: true})
}

func noticeSlackUpdateAdmin(before, after core.Group) {
// 審査ステータスのSlack通知
attachment := slack.Attachment{}

attachment.AddField(slack.Field{Title: "Title", Value: "Group情報の更新"}).
AddField(slack.Field{Title: "申請者", Value: "管理者"}).
AddField(slack.Field{Title: "Group", Value: strconv.Itoa(int(before.ID)) + ":" + before.Org}).
AddField(slack.Field{Title: "更新状況", Value: changeTextAdmin(before, after)})
notification.SendSlack(notification.Slack{Attachment: attachment, ID: "main", Status: true})
}

func addText(before core.Group, after group.Input) string {
data := ""

if after.Org != "" && after.Org != before.Org {
data += "Org: " + before.Org + "=>" + after.Org + "\n"
}

if after.OrgEn != "" && after.OrgEn != before.OrgEn {
data += "Org(En): " + before.OrgEn + "=>" + after.OrgEn + "\n"
}

if after.PostCode != "" && after.PostCode != before.PostCode {
data += "PostCode: " + before.PostCode + "=>" + after.PostCode + "\n"
}

if after.Address != "" && after.Address != before.Address {
data += "Address: " + before.Address + "=>" + after.Address + "\n"
}

if after.AddressEn != "" && after.AddressEn != before.AddressEn {
data += "Address(En): " + before.AddressEn + "=>" + after.AddressEn + "\n"
}

if after.Tel != "" && after.Tel != before.Tel {
data += "Tel: " + before.Tel + "=>" + after.Tel + "\n"
}

if after.Country != "" && after.Country != before.Country {
data += "Country: " + before.Country + "=>" + after.Country + "\n"
}

return data
}

func changeTextAdmin(before, after core.Group) string {
data := ""

if after.Org != "" && after.Org != before.Org {
data += "Org: " + before.Org + "=>" + after.Org + "\n"
}

if after.OrgEn != "" && after.OrgEn != before.OrgEn {
data += "Org(En): " + before.OrgEn + "=>" + after.OrgEn + "\n"
}

if after.PostCode != "" && after.PostCode != before.PostCode {
data += "PostCode: " + before.PostCode + "=>" + after.PostCode + "\n"
}

if after.Address != "" && after.Address != before.Address {
data += "Address: " + before.Address + "=>" + after.Address + "\n"
}

if after.AddressEn != "" && after.AddressEn != before.AddressEn {
data += "Address(En): " + before.AddressEn + "=>" + after.AddressEn + "\n"
}

if after.Tel != "" && after.Tel != before.Tel {
data += "Tel: " + before.Tel + "=>" + after.Tel + "\n"
}

if after.Country != "" && after.Country != before.Country {
data += "Country: " + before.Country + "=>" + after.Country + "\n"
}

return data
}

func expiredStatusText(status uint) string {
if status == 0 {
return "0"
} else if status == 1 {
return "ユーザより廃止"
} else if status == 2 {
return "運営委員より廃止"
} else if status == 3 {
return "審査落ち"
} else {
return "status不明"
}
}

func statusText(status uint) string {
if status == 0 {
return "0"
} else if status == 1 {
return "ネットワーク情報 記入段階"
} else if status == 2 {
return "審査中"
} else if status == 3 {
return "接続情報 記入段階"
} else if status == 4 {
return "開通作業中"
} else {
return "status不明"
}
}
171 changes: 171 additions & 0 deletions pkg/api/core/group/service/jpnicTech/v0/slack.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
package v0

import (
"github.com/ashwanthkumar/slack-go-webhook"
"github.com/homenoc/dsbd-backend/pkg/api/core"
"github.com/homenoc/dsbd-backend/pkg/api/core/group"
"github.com/homenoc/dsbd-backend/pkg/api/core/tool/notification"
"strconv"
)

func noticeSlack(loginUser core.User, before core.Group, after group.Input) {
// 審査ステータスのSlack通知
attachment := slack.Attachment{}

attachment.AddField(slack.Field{Title: "Title", Value: "Group情報の更新"}).
AddField(slack.Field{Title: "申請者", Value: strconv.Itoa(int(loginUser.ID)) + "-" + loginUser.Name}).
AddField(slack.Field{Title: "Group", Value: strconv.Itoa(int(before.ID)) + ":" + before.Org}).
AddField(slack.Field{Title: "更新状況", Value: changeText(before, after)})
notification.SendSlack(notification.Slack{Attachment: attachment, ID: "main", Status: true})
}

func noticeSlackAdmin(before, after core.Group) {
// 審査ステータスのSlack通知
attachment := slack.Attachment{}

attachment.AddField(slack.Field{Title: "Title", Value: "Group情報の更新"}).
AddField(slack.Field{Title: "申請者", Value: "管理者"}).
AddField(slack.Field{Title: "Group", Value: strconv.Itoa(int(before.ID)) + ":" + before.Org}).
AddField(slack.Field{Title: "更新状況", Value: changeTextAdmin(before, after)})
notification.SendSlack(notification.Slack{Attachment: attachment, ID: "main", Status: true})
}

func changeText(before core.Group, after group.Input) string {
data := ""

if after.Org != "" && after.Org != before.Org {
data += "Org: " + before.Org + "=>" + after.Org + "\n"
}

if after.OrgEn != "" && after.OrgEn != before.OrgEn {
data += "Org(En): " + before.OrgEn + "=>" + after.OrgEn + "\n"
}

if after.PostCode != "" && after.PostCode != before.PostCode {
data += "PostCode: " + before.PostCode + "=>" + after.PostCode + "\n"
}

if after.Address != "" && after.Address != before.Address {
data += "Address: " + before.Address + "=>" + after.Address + "\n"
}

if after.AddressEn != "" && after.AddressEn != before.AddressEn {
data += "Address(En): " + before.AddressEn + "=>" + after.AddressEn + "\n"
}

if after.Tel != "" && after.Tel != before.Tel {
data += "Tel: " + before.Tel + "=>" + after.Tel + "\n"
}

if after.Country != "" && after.Country != before.Country {
data += "Country: " + before.Country + "=>" + after.Country + "\n"
}

return data
}

func changeTextAdmin(before, after core.Group) string {
data := ""
if after.Open != nil {
if *before.Open != *after.Open {
if *after.Open {
data += "開通: 未開通 => 開通済み\n"
} else {
data += "開通: 開通 => 未開通\n"
}
}
}

if after.Pass != nil {
if *before.Pass != *after.Pass {
if *after.Pass {
data += "審査: 未審査 => 審査合格済み\n"
} else {
data += "審査: 審査合格 => 未審査状態\n"
}
}
}

if after.Lock != nil {
if !*before.Lock != *after.Lock {
if *after.Lock {
data += "ユーザ変更: 禁止 => 許可\n"
} else {
data += "ユーザ変更: 許可 => 禁止\n"
}
}
}

if after.ExpiredStatus != nil {
if *before.ExpiredStatus != *after.ExpiredStatus {
data += "ExpiredStatus: " + expiredStatusText(*before.ExpiredStatus) + " => " +
expiredStatusText(*after.ExpiredStatus) + "\n"
}
}

if after.Status != nil {
if *before.Status != *after.Status {
data += "ExpiredStatus: " + statusText(*before.Status) + " => " + statusText(*after.Status) + "\n"
}
}

if after.Org != "" && after.Org != before.Org {
data += "Org: " + before.Org + "=>" + after.Org + "\n"
}

if after.OrgEn != "" && after.OrgEn != before.OrgEn {
data += "Org(En): " + before.OrgEn + "=>" + after.OrgEn + "\n"
}

if after.PostCode != "" && after.PostCode != before.PostCode {
data += "PostCode: " + before.PostCode + "=>" + after.PostCode + "\n"
}

if after.Address != "" && after.Address != before.Address {
data += "Address: " + before.Address + "=>" + after.Address + "\n"
}

if after.AddressEn != "" && after.AddressEn != before.AddressEn {
data += "Address(En): " + before.AddressEn + "=>" + after.AddressEn + "\n"
}

if after.Tel != "" && after.Tel != before.Tel {
data += "Tel: " + before.Tel + "=>" + after.Tel + "\n"
}

if after.Country != "" && after.Country != before.Country {
data += "Country: " + before.Country + "=>" + after.Country + "\n"
}

return data
}

func expiredStatusText(status uint) string {
if status == 0 {
return "0"
} else if status == 1 {
return "ユーザより廃止"
} else if status == 2 {
return "運営委員より廃止"
} else if status == 3 {
return "審査落ち"
} else {
return "status不明"
}
}

func statusText(status uint) string {
if status == 0 {
return "0"
} else if status == 1 {
return "ネットワーク情報 記入段階"
} else if status == 2 {
return "審査中"
} else if status == 3 {
return "接続情報 記入段階"
} else if status == 4 {
return "開通作業中"
} else {
return "status不明"
}
}
Loading

0 comments on commit ce2d2a5

Please sign in to comment.