User
func eventPOST(c *gin.Context) { c.Bind(&event) log.WithFields(event.ToFields()).Info("Processing event") var errJira, errJiraGroup, errSlack, errRemove, errUnknown error switch event.AlertName { case "subscription_payment_succeeded", "subscription_created": errJira = InviteToJira(event.Email) errJiraGroup = AddToJiraGroup(event.Email) errSlack = InviteToSlack(event.Email) case "payment_succeeded": errJira = InviteToJira(event.Email) errSlack = InviteToSlack(event.Email) case "subscription_cancelled": errRemove = RemoveFromJiraGroup(event.Email) default: log.WithFields(log.Fields{ "event": event.AlertName, }).Error("Unknown event") errUnknown = fmt.Errorf("Unknown event") } if errJira != nil || errJiraGroup != nil || errSlack != nil || errRemove != nil || errUnknown != nil { c.String(http.StatusInternalServerError, "not Ok\n") return } c.String(http.StatusOK, "Ok\n") return }
Избегайте дублирования кода:
Хоть какие-нибудь подробности бы дали, кроме «переписали некоторые компоненты на Go».
А то пиара много, хотелось бы что-то потрогать руками...