package controller import ( "bytes" "fmt" "kng_feed_api/helper" "net/http" "os" "path/filepath" "github.com/gin-gonic/gin" ) func SendXmlFeedToClient(context *gin.Context) { var ra = context.Request.RemoteAddr var reqUrl = context.Request.RequestURI var preString = fmt.Sprintf(`"DIALOG_ID":%s, "MESSAGE":"Запрошен %s c ip адреса [%s]"`, "", reqUrl, ra) var jsonStr = []byte(preString) sendBitrix24Log(jsonStr) sendFile(context, "feed.xml") } func SendCsvDeltaToClient(context *gin.Context) { sendFile(context, "delta.csv") } func sendBitrix24Log(jsonStr []byte) { url := "https://kng.bitrix24.ru/rest/1/vu5dqvx5sifh1334/im.message.add" req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) defer resp.Body.Close() if err != nil { fmt.Println(err) } } func sendFile(context *gin.Context, fileMark string) { var fileName = filepath.Join(helper.RootDir(), fileMark) _, err := os.Stat(fileName) if err != nil { if os.IsNotExist(err) { context.JSON(http.StatusInternalServerError, gin.H{ "description": "The file does not exist yet. Contact the administrator.", "err": "ERR-001", }, ) return } else { context.JSON(http.StatusInternalServerError, gin.H{ "description": err.Error(), "err": "unknown error", }, ) return } } context.FileAttachment(fileName, fileMark) context.Status(http.StatusOK) }