import (
"net/http"
"github.com/fyatu/fyatu-go/webhook"
)
func webhookHandler(w http.ResponseWriter, r *http.Request) {
signature := r.Header.Get("X-Fyatu-Signature")
payload, err := io.ReadAll(r.Body)
if err != nil {
http.Error(w, "Failed to read body", http.StatusBadRequest)
return
}
valid, err := webhook.VerifySignature(payload, signature, "your_webhook_secret")
if err != nil || !valid {
http.Error(w, "Invalid signature", http.StatusUnauthorized)
return
}
var event webhook.Event
if err := json.Unmarshal(payload, &event); err != nil {
http.Error(w, "Invalid payload", http.StatusBadRequest)
return
}
fmt.Printf("Received event: %s\n", event.Type)
w.WriteHeader(http.StatusOK)
}