mirror of
https://github.com/h44z/wg-portal.git
synced 2025-07-03 11:47:00 +00:00
100 lines
4.0 KiB
Go
100 lines
4.0 KiB
Go
package models
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/h44z/wg-portal/internal/domain"
|
|
)
|
|
|
|
// Interface represents an interface model for webhooks. For details about the fields, see the domain.Interface struct.
|
|
type Interface struct {
|
|
CreatedBy string `json:"CreatedBy"`
|
|
UpdatedBy string `json:"UpdatedBy"`
|
|
CreatedAt time.Time `json:"CreatedAt"`
|
|
UpdatedAt time.Time `json:"UpdatedAt"`
|
|
|
|
Identifier string `json:"Identifier"`
|
|
PrivateKey string `json:"PrivateKey"`
|
|
PublicKey string `json:"PublicKey"`
|
|
ListenPort int `json:"ListenPort"`
|
|
|
|
Addresses []string `json:"Addresses"`
|
|
DnsStr string `json:"DnsStr"`
|
|
DnsSearchStr string `json:"DnsSearchStr"`
|
|
|
|
Mtu int `json:"Mtu"`
|
|
FirewallMark uint32 `json:"FirewallMark"`
|
|
RoutingTable string `json:"RoutingTable"`
|
|
|
|
PreUp string `json:"PreUp"`
|
|
PostUp string `json:"PostUp"`
|
|
PreDown string `json:"PreDown"`
|
|
PostDown string `json:"PostDown"`
|
|
|
|
SaveConfig bool `json:"SaveConfig"`
|
|
|
|
DisplayName string `json:"DisplayName"`
|
|
Type string `json:"Type"`
|
|
DriverType string `json:"DriverType"`
|
|
Disabled *time.Time `json:"Disabled,omitempty"`
|
|
DisabledReason string `json:"DisabledReason,omitempty"`
|
|
|
|
PeerDefNetworkStr string `json:"PeerDefNetworkStr,omitempty"`
|
|
PeerDefDnsStr string `json:"PeerDefDnsStr,omitempty"`
|
|
PeerDefDnsSearchStr string `json:"PeerDefDnsSearchStr,omitempty"`
|
|
PeerDefEndpoint string `json:"PeerDefEndpoint,omitempty"`
|
|
PeerDefAllowedIPsStr string `json:"PeerDefAllowedIPsStr,omitempty"`
|
|
PeerDefMtu int `json:"PeerDefMtu,omitempty"`
|
|
PeerDefPersistentKeepalive int `json:"PeerDefPersistentKeepalive,omitempty"`
|
|
PeerDefFirewallMark uint32 `json:"PeerDefFirewallMark,omitempty"`
|
|
PeerDefRoutingTable string `json:"PeerDefRoutingTable,omitempty"`
|
|
|
|
PeerDefPreUp string `json:"PeerDefPreUp,omitempty"`
|
|
PeerDefPostUp string `json:"PeerDefPostUp,omitempty"`
|
|
PeerDefPreDown string `json:"PeerDefPreDown,omitempty"`
|
|
PeerDefPostDown string `json:"PeerDefPostDown,omitempty"`
|
|
}
|
|
|
|
// NewInterface creates a new Interface model from a domain.Interface.
|
|
func NewInterface(src domain.Interface) Interface {
|
|
return Interface{
|
|
CreatedBy: src.CreatedBy,
|
|
UpdatedBy: src.UpdatedBy,
|
|
CreatedAt: src.CreatedAt,
|
|
UpdatedAt: src.UpdatedAt,
|
|
Identifier: string(src.Identifier),
|
|
PrivateKey: src.KeyPair.PrivateKey,
|
|
PublicKey: src.KeyPair.PublicKey,
|
|
ListenPort: src.ListenPort,
|
|
Addresses: domain.CidrsToStringSlice(src.Addresses),
|
|
DnsStr: src.DnsStr,
|
|
DnsSearchStr: src.DnsSearchStr,
|
|
Mtu: src.Mtu,
|
|
FirewallMark: src.FirewallMark,
|
|
RoutingTable: src.RoutingTable,
|
|
PreUp: src.PreUp,
|
|
PostUp: src.PostUp,
|
|
PreDown: src.PreDown,
|
|
PostDown: src.PostDown,
|
|
SaveConfig: src.SaveConfig,
|
|
DisplayName: string(src.Identifier),
|
|
Type: string(src.Type),
|
|
DriverType: src.DriverType,
|
|
Disabled: src.Disabled,
|
|
DisabledReason: src.DisabledReason,
|
|
PeerDefNetworkStr: src.PeerDefNetworkStr,
|
|
PeerDefDnsStr: src.PeerDefDnsStr,
|
|
PeerDefDnsSearchStr: src.PeerDefDnsSearchStr,
|
|
PeerDefEndpoint: src.PeerDefEndpoint,
|
|
PeerDefAllowedIPsStr: src.PeerDefAllowedIPsStr,
|
|
PeerDefMtu: src.PeerDefMtu,
|
|
PeerDefPersistentKeepalive: src.PeerDefPersistentKeepalive,
|
|
PeerDefFirewallMark: src.PeerDefFirewallMark,
|
|
PeerDefRoutingTable: src.PeerDefRoutingTable,
|
|
PeerDefPreUp: src.PeerDefPreUp,
|
|
PeerDefPostUp: src.PeerDefPostUp,
|
|
PeerDefPreDown: src.PeerDefPreDown,
|
|
PeerDefPostDown: src.PeerDefPostDown,
|
|
}
|
|
}
|