Files
Strix/internal/generate/generate.go
T
eduard256 27117900eb Rewrite Strix from scratch as single binary
Complete architecture rewrite following go2rtc patterns:
- pkg/ for pure logic (camdb, tester, probe, generate)
- internal/ for application glue with Init() modules
- Single HTTP server on :4567 with all endpoints
- zerolog with password masking and memory ring buffer
- Environment-based config only (no YAML files)

API endpoints: /api/search, /api/streams, /api/test,
/api/probe, /api/generate, /api/health, /api/log

Dependencies: go2rtc v1.9.14, go-sqlite3, miekg/dns, zerolog
2026-03-25 10:38:46 +00:00

41 lines
820 B
Go

package generate
import (
"encoding/json"
"net/http"
"github.com/eduard256/strix/internal/api"
"github.com/eduard256/strix/internal/app"
gen "github.com/eduard256/strix/pkg/generate"
"github.com/rs/zerolog"
)
var log zerolog.Logger
func Init() {
log = app.GetLogger("generate")
api.HandleFunc("api/generate", apiGenerate)
}
func apiGenerate(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
http.Error(w, "method not allowed", http.StatusMethodNotAllowed)
return
}
var req gen.Request
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
http.Error(w, "invalid json: "+err.Error(), http.StatusBadRequest)
return
}
resp, err := gen.Generate(&req)
if err != nil {
http.Error(w, err.Error(), http.StatusUnprocessableEntity)
return
}
api.ResponseJSON(w, resp)
}