78 lines
2.0 KiB
Go
78 lines
2.0 KiB
Go
package main
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gzzn.com/mini/ciimsproxy/internal"
|
|
)
|
|
|
|
const (
|
|
servicePrefix string = "/services/ExchangeService"
|
|
// defaultURL string = "http://localhost:8080"
|
|
defaultURL string = "http://192.168.10.96:8080"
|
|
)
|
|
|
|
func main() {
|
|
r := gin.Default()
|
|
r.GET("/ping", func(c *gin.Context) {
|
|
c.JSON(200, gin.H{
|
|
"message": "pong",
|
|
})
|
|
})
|
|
r.POST("/msg", sendMessage)
|
|
r.POST("/receive", receiveMessage)
|
|
// r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
|
|
r.Run(":9090")
|
|
}
|
|
|
|
func sendMessage(c *gin.Context) {
|
|
var message struct {
|
|
URL string `json:"url" `
|
|
User string `json:"user" binding:"required"`
|
|
Pass string `json:"pass" binding:"required"`
|
|
Event string `json:"event" binding:"required"`
|
|
Priority int `json:"priority" binding:"required"`
|
|
Val bool `json:"val"`
|
|
Msg string `json:"msg" binding:"required"`
|
|
}
|
|
err := c.Bind(&message)
|
|
if err == nil {
|
|
msg := internal.CreateSend(message.User, message.Pass,
|
|
message.Priority, message.Event, message.Val, message.Msg)
|
|
url := getURL(message.URL)
|
|
resp := internal.Send(url, msg)
|
|
c.String(http.StatusOK, resp)
|
|
} else {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
|
}
|
|
}
|
|
|
|
func receiveMessage(c *gin.Context) {
|
|
var message struct {
|
|
URL string `json:"url" `
|
|
User string `json:"user" binding:"required"`
|
|
Pass string `json:"pass" binding:"required"`
|
|
Count int `json:"count" binding:"required"`
|
|
}
|
|
err := c.Bind(&message)
|
|
if err == nil {
|
|
msg := internal.CreateReceive(message.User, message.Pass, message.Count)
|
|
url := getURL(message.URL)
|
|
resp := internal.Send(url, msg)
|
|
c.JSON(http.StatusOK, gin.H{"msgs": internal.GetMsgs(resp)})
|
|
} else {
|
|
c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
|
|
}
|
|
}
|
|
|
|
func getURL(url string) string {
|
|
var result string
|
|
if len(url) > 0 {
|
|
result = url + servicePrefix
|
|
} else {
|
|
result = defaultURL + servicePrefix
|
|
}
|
|
return result
|
|
}
|