Skip to content

Commit

Permalink
feat: add slack notify when publish to cloud pub/sub fail
Browse files Browse the repository at this point in the history
  • Loading branch information
Aylie Chou committed Mar 30, 2022
1 parent 6d95cf8 commit 6ba0b9d
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 11 deletions.
3 changes: 3 additions & 0 deletions configs/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ news:
neticrm:
project_id: "" # gcp project id
pub_topic: "" # pub/sub topic
slack_webhook: "" # slack notify webhook
`)

type ConfYaml struct {
Expand Down Expand Up @@ -197,6 +198,7 @@ type NewsConfig struct {
type NeticrmPubConfig struct {
ProjectID string `yaml:"project_id"`
Topic string `yaml:"pub_topic"`
SlackWebhook string `yaml:"slack_webhook"`
}

func init() {
Expand Down Expand Up @@ -283,6 +285,7 @@ func buildConf() ConfYaml {

conf.Neticrm.ProjectID = viper.GetString("neticrm.project_id")
conf.Neticrm.Topic = viper.GetString("neticrm.pub_topic")
conf.Neticrm.SlackWebhook = viper.GetString("neticrm.slack_webhook")
return conf
}

Expand Down
18 changes: 10 additions & 8 deletions controllers/donation.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
"gopkg.in/go-playground/validator.v8"
"gopkg.in/guregu/null.v3"
"github.com/twreporter/go-mod-lib/pkg/cloudpub"
"github.com/twreporter/go-mod-lib/pkg/slack"

"github.com/twreporter/go-api/globals"
"github.com/twreporter/go-api/models"
Expand Down Expand Up @@ -546,14 +547,6 @@ func (mc *MembershipController) sendDonationThankYouMail(body clientResp) {

}

func publishToNeticrm(ms []*cloudpub.Message) {
errors := cloudpub.PublishNotifications(context.Background(), ms)
if errors != nil {
// todo: add notification to slack
log.Errorf("errors: %+v", errors)
}
}

// Handler for an authenticated user to create a periodic donation
func (mc *MembershipController) CreateAPeriodicDonationOfAUser(c *gin.Context) (int, gin.H, error) {
// Validate client request
Expand Down Expand Up @@ -1347,3 +1340,12 @@ func validateLinePayMethod(method string) bool {

return valid
}

func publishToNeticrm(ms []*cloudpub.Message) {
ctx := context.Background()
errors := cloudpub.PublishNotifications(ctx, ms)

if errors != nil {
slack.NeticrmNotify(ctx, errors)
}
}
3 changes: 2 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,11 @@ require (
github.com/mattn/go-isatty v0.0.13 // indirect
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.4.2
github.com/slack-go/slack v0.10.2 // indirect
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a // indirect
github.com/spf13/viper v1.3.2
github.com/stretchr/testify v1.6.1
github.com/twreporter/go-mod-lib v0.0.0-20220317065819-804efc386ad3
github.com/twreporter/go-mod-lib v0.0.0-20220330041607-4d484f68db8c
github.com/twreporter/logformatter v0.0.0-20200211094126-60fe42618206
github.com/ugorji/go v1.2.6 // indirect
go.mongodb.org/mongo-driver v1.4.6
Expand Down
10 changes: 8 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,8 @@ github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gG
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-test/deep v1.0.4 h1:u2CU3YKy9I2pmu9pX0eq50wCgjfGIt539SqR7FbHiho=
github.com/go-test/deep v1.0.4/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=
Expand Down Expand Up @@ -220,6 +222,8 @@ github.com/gorilla/sessions v1.1.1/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE
github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w=
github.com/gorilla/sessions v1.2.1 h1:DHd3rPN5lE3Ts3D8rKkQ8x/0kqfeNmBAaiSi+o7FsgI=
github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
Expand Down Expand Up @@ -352,6 +356,8 @@ github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx
github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/slack-go/slack v0.10.2 h1:KMN/h2sgUninHXvQI8PrR/PHBUuWp2NPvz2Kr66tki4=
github.com/slack-go/slack v0.10.2/go.mod h1:5FLdBRv7VW/d9EBxx/eEktOptWygbA9K2QK/KW7ds1s=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs=
Expand All @@ -378,8 +384,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
github.com/tidwall/pretty v0.0.0-20180105212114-65a9db5fad51/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/twreporter/go-mod-lib v0.0.0-20220317065819-804efc386ad3 h1:v11YZamcG+yEtSYYYfYM/oboyLYcKABjPN4UAytm9XE=
github.com/twreporter/go-mod-lib v0.0.0-20220317065819-804efc386ad3/go.mod h1:6LVgy764FKKeCh+0jzdXXM3re6JNBziRL+7oaBZ23yo=
github.com/twreporter/go-mod-lib v0.0.0-20220330041607-4d484f68db8c h1:TePXW2kuQTIEeydOKwK0pfyu5UdL9ehDKHDcJ8vXUkU=
github.com/twreporter/go-mod-lib v0.0.0-20220330041607-4d484f68db8c/go.mod h1:6LVgy764FKKeCh+0jzdXXM3re6JNBziRL+7oaBZ23yo=
github.com/twreporter/logformatter v0.0.0-20200211094126-60fe42618206 h1:If2shnAGxnAOXxCgyU86fu6LHvhOoLcbqZTQW+pPTzo=
github.com/twreporter/logformatter v0.0.0-20200211094126-60fe42618206/go.mod h1:bx6HffT8NtPfXKh4yD9QBFLXw5RNKUBPbgfc2GVEkr8=
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
Expand Down
7 changes: 7 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/mongo/readpref"
"github.com/twreporter/go-mod-lib/pkg/cloudpub"
"github.com/twreporter/go-mod-lib/pkg/slack"

"github.com/twreporter/go-api/configs"
"github.com/twreporter/go-api/controllers"
Expand Down Expand Up @@ -81,6 +82,12 @@ func main() {
}
cloudpub.NewPublisher(ctx, pubConfig)

// init slack notify client
slackConfig := &slack.Config{
Webhook: globals.Conf.Neticrm.SlackWebhook,
}
slack.NewClient(slackConfig)

// mailSender := services.NewSMTPMailService() // use office365 to send mails
mailSvc := services.NewAmazonMailService() // use Amazon SES to send mails

Expand Down

0 comments on commit 6ba0b9d

Please sign in to comment.