106 lines
2.5 KiB
Go
106 lines
2.5 KiB
Go
package connector
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func (tc *TsConnector) TcScreenshotList(ctx *gin.Context) {
|
|
jsonScreen, err := tc.teamserver.TsScreenshotList()
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, gin.H{"message": err.Error(), "ok": false})
|
|
return
|
|
}
|
|
|
|
ctx.Data(http.StatusOK, "application/json; charset=utf-8", []byte(jsonScreen))
|
|
}
|
|
|
|
func (tc *TsConnector) TcScreenshotGetImage(ctx *gin.Context) {
|
|
screenId := ctx.Query("screen_id")
|
|
if screenId == "" {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{"message": "screen_id is required", "ok": false})
|
|
return
|
|
}
|
|
|
|
content, err := tc.teamserver.TsScreenshotGetImage(screenId)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, gin.H{"message": err.Error(), "ok": false})
|
|
return
|
|
}
|
|
|
|
ctx.Data(http.StatusOK, "image/png", content)
|
|
}
|
|
|
|
type ScreenRemove struct {
|
|
ScreenIdArray []string `json:"screen_id_array"`
|
|
}
|
|
|
|
func (tc *TsConnector) TcScreenshotRemove(ctx *gin.Context) {
|
|
var screenRemove ScreenRemove
|
|
err := ctx.ShouldBindJSON(&screenRemove)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, gin.H{"message": "invalid JSON data", "ok": false})
|
|
return
|
|
}
|
|
|
|
var errorsSlice []string
|
|
for _, screenId := range screenRemove.ScreenIdArray {
|
|
err = tc.teamserver.TsScreenshotDelete(screenId)
|
|
if err != nil {
|
|
errorsSlice = append(errorsSlice, err.Error())
|
|
}
|
|
}
|
|
|
|
if len(errorsSlice) > 0 {
|
|
message := ""
|
|
for i, errorMessage := range errorsSlice {
|
|
message += fmt.Sprintf("%d. %s\n", i+1, errorMessage)
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{"message": message, "ok": false})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{"message": "", "ok": true})
|
|
}
|
|
|
|
type ScreenNote struct {
|
|
ScreenIdArray []string `json:"screen_id_array"`
|
|
Note string `json:"note"`
|
|
}
|
|
|
|
func (tc *TsConnector) TcScreenshotSetNote(ctx *gin.Context) {
|
|
var (
|
|
screenNote ScreenNote
|
|
err error
|
|
)
|
|
|
|
err = ctx.ShouldBindJSON(&screenNote)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusOK, gin.H{"message": "invalid JSON data", "ok": false})
|
|
return
|
|
}
|
|
|
|
var errorsSlice []string
|
|
for _, screenId := range screenNote.ScreenIdArray {
|
|
err = tc.teamserver.TsScreenshotNote(screenId, screenNote.Note)
|
|
if err != nil {
|
|
errorsSlice = append(errorsSlice, err.Error())
|
|
}
|
|
}
|
|
|
|
if len(errorsSlice) > 0 {
|
|
message := ""
|
|
for i, errorMessage := range errorsSlice {
|
|
message += fmt.Sprintf("%d. %s\n", i+1, errorMessage)
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{"message": message, "ok": false})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{"message": "", "ok": true})
|
|
}
|