yt-remote-control/api.go

35 lines
695 B
Go
Raw Normal View History

2024-09-15 14:16:45 +02:00
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"git.milar.in/milarin/adverr"
"git.milar.in/milarin/ezhttp"
)
var BaseURL = adverr.Must(url.Parse("http://desktop:30124"))
func ProxyRequest(w http.ResponseWriter, r *http.Request) {
req := ezhttp.Request(
ezhttp.Method(r.Method),
ezhttp.URL(BaseURL.JoinPath(r.URL.Path).String()),
ezhttp.Body(ezhttp.Reader(r.Body)),
ezhttp.ContentType("application/json"),
)
resp, err := ezhttp.Do(req)
if err != nil {
fmt.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
}
defer resp.Body.Close()
w.WriteHeader(resp.StatusCode)
w.Header().Add("Content-Type", "application/json")
io.Copy(w, resp.Body)
}