gtranslate/api.go

40 lines
804 B
Go
Raw Permalink Normal View History

2021-01-22 20:42:13 +00:00
package main
import (
"fmt"
2021-01-22 20:42:13 +00:00
"net/http"
)
func writeError(w http.ResponseWriter, status int, err interface{}) {
w.WriteHeader(status)
fmt.Fprintln(w, err)
}
2021-01-22 20:42:13 +00:00
func CreateApiHandler(settings *TranslateSettings) func(w http.ResponseWriter, req *http.Request) {
return func(w http.ResponseWriter, req *http.Request) {
from := req.FormValue("from")
if from == "" {
writeError(w, 400, "'from' field is missing")
return
}
to := req.FormValue("to")
if to == "" {
writeError(w, 400, "'to' field is missing")
return
}
text := req.FormValue("text")
if text == "" {
writeError(w, 400, "'text' field is missing")
return
}
translation, err := Translate(settings, from, to, text)
if err != nil {
writeError(w, 500, err)
return
2021-01-22 20:42:13 +00:00
}
fmt.Fprint(w, translation)
2021-01-22 20:42:13 +00:00
}
}