Files
015/backend/internal/controllers/task/text.go

46 lines
902 B
Go

package task
import (
"encoding/json"
"github.com/labstack/echo/v5"
)
var validProviders = map[string]bool{
"google": true,
"microsoft": true,
"deeplx": true,
"deepseek": true,
}
var validSources = map[string]bool{
"auto": true,
"zh-CN": true,
"en": true,
"ja": true,
"ko": true,
}
type TranslateTextRequest struct {
Text string `json:"text"`
Source string `json:"source"`
Target string `json:"target"`
Provider string `json:"provider"`
}
func HandleTextTranslate(c *echo.Context) ([]byte, error) {
r := new(TranslateTextRequest)
if err := c.Bind(r); err != nil {
return nil, err
}
if r.Text == "" || r.Target == "" || !validProviders[r.Provider] || !validSources[r.Source] {
return nil, ErrInvalidRequest
}
return json.Marshal(map[string]any{
"text": r.Text,
"source": r.Source,
"target": r.Target,
"provider": r.Provider,
})
}