wip
This commit is contained in:
59
hub/util.go
Normal file
59
hub/util.go
Normal file
@@ -0,0 +1,59 @@
|
||||
package hub
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
"net/netip"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (app *App) render(name string, w http.ResponseWriter, data any) error {
|
||||
tmpl, ok := app.tmpl[name]
|
||||
if !ok {
|
||||
log.Printf("Template not found: %s", name)
|
||||
return errors.New("not found")
|
||||
}
|
||||
if err := tmpl.Execute(w, data); err != nil {
|
||||
log.Printf("Failed to render template %s: %v", name, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *App) redirect(w http.ResponseWriter, r *http.Request, url string, args ...any) error {
|
||||
if len(args) > 0 {
|
||||
url = fmt.Sprintf(url, args...)
|
||||
}
|
||||
http.Redirect(w, r, url, http.StatusSeeOther)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *App) sendJSON(w http.ResponseWriter, data any) error {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
if err := json.NewEncoder(w).Encode(data); err != nil {
|
||||
log.Printf("Failed to send JSON: %v", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func stringToIP(in string) ([]byte, error) {
|
||||
in = strings.TrimSpace(in)
|
||||
if len(in) == 0 {
|
||||
return []byte{}, nil
|
||||
}
|
||||
|
||||
addr, err := netip.ParseAddr(in)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return addr.AsSlice(), nil
|
||||
}
|
||||
|
||||
func ipBytesTostring(in []byte) string {
|
||||
if addr, ok := netip.AddrFromSlice(in); ok {
|
||||
return addr.String()
|
||||
}
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user