31 lines
558 B
Go
31 lines
558 B
Go
package handle
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"io"
|
|
"net/netip"
|
|
|
|
"tinyskin/model"
|
|
|
|
"github.com/google/wire"
|
|
"github.com/samber/lo"
|
|
)
|
|
|
|
var HandelSet = wire.NewSet(NewUserHandel, NewAdminHandel, NewHandel)
|
|
|
|
func encodeJson[T any](w io.Writer, m model.API[T]) {
|
|
json.NewEncoder(w).Encode(m)
|
|
}
|
|
|
|
func getPrefix(ip string) (string, error) {
|
|
ipa, err := netip.ParseAddr(ip)
|
|
if err != nil {
|
|
return "", fmt.Errorf("getPrefix: %w", err)
|
|
}
|
|
if ipa.Is6() {
|
|
return lo.Must1(ipa.Prefix(48)).String(), nil
|
|
}
|
|
return lo.Must1(ipa.Prefix(24)).String(), nil
|
|
}
|