mirror of https://github.com/h44z/wg-portal.git
				
				
				
			
		
			
				
	
	
		
			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,
 | 
						|
	}
 | 
						|
}
 |