2026-04-06 00:20:51 -05:00

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})
}