1
0
mirror of synced 2024-11-25 21:26:02 +03:00

add ErrorResponse struct

This commit is contained in:
DmitryZagorulko 2018-08-23 15:52:32 +03:00
parent 8983640ab2
commit 87777dc95b
4 changed files with 34 additions and 16 deletions

15
src/error.go Normal file
View File

@ -0,0 +1,15 @@
package main
import (
"net/http"
)
type ErrorResponse struct {
Error string `json:"error"`
}
func BadRequest(error string) (int, interface{}) {
return http.StatusBadRequest, ErrorResponse{
Error: getLocalizedMessage(error),
}
}

View File

@ -33,13 +33,13 @@ func addBotHandler(c *gin.Context) {
} }
if cl.ID != 0 { if cl.ID != 0 {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("bot_already_created")}) c.AbortWithStatusJSON(BadRequest("bot_already_created"))
return return
} }
bot, err := tgbotapi.NewBotAPI(b.Token) bot, err := tgbotapi.NewBotAPI(b.Token)
if err != nil { if err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("incorrect_token")}) c.AbortWithStatusJSON(BadRequest("incorrect_token"))
logger.Error(b.Token, err.Error()) logger.Error(b.Token, err.Error())
return return
} }
@ -48,7 +48,7 @@ func addBotHandler(c *gin.Context) {
wr, err := bot.SetWebhook(tgbotapi.NewWebhook("https://" + config.HTTPServer.Host + "/telegram/" + bot.Token)) wr, err := bot.SetWebhook(tgbotapi.NewWebhook("https://" + config.HTTPServer.Host + "/telegram/" + bot.Token))
if err != nil || !wr.Ok { if err != nil || !wr.Ok {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("error_creating_webhook")}) c.AbortWithStatusJSON(BadRequest("error_creating_webhook"))
logger.Error(b.Token, err.Error(), wr) logger.Error(b.Token, err.Error(), wr)
return return
} }
@ -60,14 +60,14 @@ func addBotHandler(c *gin.Context) {
Settings: v1.ChannelSettings{ Settings: v1.ChannelSettings{
SpamAllowed: false, SpamAllowed: false,
Status: v1.Status{ Status: v1.Status{
Delivered: v1.ChannelFeatureNone, Delivered: v1.ChannelFeatureSend,
Read: v1.ChannelFeatureNone, Read: v1.ChannelFeatureNone,
}, },
Text: v1.ChannelSettingsText{ Text: v1.ChannelSettingsText{
Creating: v1.ChannelFeatureBoth, Creating: v1.ChannelFeatureBoth,
Editing: v1.ChannelFeatureBoth, Editing: v1.ChannelFeatureBoth,
Quoting: v1.ChannelFeatureBoth, Quoting: v1.ChannelFeatureBoth,
Deleting: v1.ChannelFeatureSend, Deleting: v1.ChannelFeatureReceive,
}, },
}, },
} }
@ -77,7 +77,7 @@ func addBotHandler(c *gin.Context) {
var client = v1.New(conn.MGURL, conn.MGToken) var client = v1.New(conn.MGURL, conn.MGToken)
data, status, err := client.ActivateTransportChannel(ch) data, status, err := client.ActivateTransportChannel(ch)
if status != http.StatusCreated { if status != http.StatusCreated {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("error_activating_channel")}) c.AbortWithStatusJSON(BadRequest("error_activating_channel"))
logger.Error(conn.APIURL, status, err.Error(), data) logger.Error(conn.APIURL, status, err.Error(), data)
return return
} }
@ -97,7 +97,7 @@ func deleteBotHandler(c *gin.Context) {
b := c.MustGet("bot").(Bot) b := c.MustGet("bot").(Bot)
conn := getConnectionById(b.ConnectionID) conn := getConnectionById(b.ConnectionID)
if conn.MGURL == "" || conn.MGToken == "" { if conn.MGURL == "" || conn.MGToken == "" {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("not_found_account")}) c.AbortWithStatusJSON(BadRequest("not_found_account"))
return return
} }
@ -105,7 +105,7 @@ func deleteBotHandler(c *gin.Context) {
data, status, err := client.DeactivateTransportChannel(getBotChannelByToken(b.Token)) data, status, err := client.DeactivateTransportChannel(getBotChannelByToken(b.Token))
if status > http.StatusOK { if status > http.StatusOK {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("error_deactivating_channel")}) c.AbortWithStatusJSON(BadRequest("error_deactivating_channel"))
logger.Error(b.ID, status, err.Error(), data) logger.Error(b.ID, status, err.Error(), data)
return return
} }
@ -147,7 +147,11 @@ func saveHandler(c *gin.Context) {
conn := c.MustGet("connection").(Connection) conn := c.MustGet("connection").(Connection)
_, err, code := getAPIClient(conn.APIURL, conn.APIKEY) _, err, code := getAPIClient(conn.APIURL, conn.APIKEY)
if err != nil { if err != nil {
c.AbortWithStatusJSON(code, gin.H{"error": err.Error()}) if code == http.StatusInternalServerError {
c.Error(err)
} else {
c.AbortWithStatusJSON(BadRequest(err.Error()))
}
return return
} }
@ -165,7 +169,7 @@ func createHandler(c *gin.Context) {
cl := getConnectionByURL(conn.APIURL) cl := getConnectionByURL(conn.APIURL)
if cl.ID != 0 { if cl.ID != 0 {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("connection_already_created")}) c.AbortWithStatusJSON(BadRequest("connection_already_created"))
return return
} }
@ -187,7 +191,7 @@ func createHandler(c *gin.Context) {
} }
if status >= http.StatusBadRequest { if status >= http.StatusBadRequest {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("error_activity_mg")}) c.AbortWithStatusJSON(BadRequest("error_activity_mg"))
logger.Error(conn.APIURL, status, errr.ApiErr, data) logger.Error(conn.APIURL, status, errr.ApiErr, data)
return return
} }

View File

@ -61,14 +61,14 @@ func TestRouting_addBotHandler(t *testing.T) {
Settings: v1.ChannelSettings{ Settings: v1.ChannelSettings{
SpamAllowed: false, SpamAllowed: false,
Status: v1.Status{ Status: v1.Status{
Delivered: v1.ChannelFeatureNone, Delivered: v1.ChannelFeatureSend,
Read: v1.ChannelFeatureNone, Read: v1.ChannelFeatureNone,
}, },
Text: v1.ChannelSettingsText{ Text: v1.ChannelSettingsText{
Creating: v1.ChannelFeatureBoth, Creating: v1.ChannelFeatureBoth,
Editing: v1.ChannelFeatureBoth, Editing: v1.ChannelFeatureBoth,
Quoting: v1.ChannelFeatureBoth, Quoting: v1.ChannelFeatureBoth,
Deleting: v1.ChannelFeatureSend, Deleting: v1.ChannelFeatureReceive,
}, },
}, },
} }

View File

@ -1,7 +1,6 @@
package main package main
import ( import (
"net/http"
"os" "os"
"os/signal" "os/signal"
"regexp" "regexp"
@ -127,7 +126,7 @@ func checkBotForRequest() gin.HandlerFunc {
} }
if b.Token == "" { if b.Token == "" {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("no_bot_token")}) c.AbortWithStatusJSON(BadRequest("no_bot_token"))
return return
} }
@ -140,7 +139,7 @@ func checkConnectionForRequest() gin.HandlerFunc {
var conn Connection var conn Connection
if err := c.ShouldBindJSON(&conn); err != nil { if err := c.ShouldBindJSON(&conn); err != nil {
c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": getLocalizedMessage("incorrect_url_key")}) c.AbortWithStatusJSON(BadRequest("incorrect_url_key"))
return return
} }