mirror of https://github.com/h44z/wg-portal.git
				
				
				
			
		
			
				
	
	
		
			90 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Go
		
	
	
	
| package models
 | |
| 
 | |
| import (
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/fedor-git/wg-portal-2/internal/domain"
 | |
| )
 | |
| 
 | |
| // Peer represents a peer model for webhooks.  For details about the fields, see the domain.Peer struct.
 | |
| type Peer struct {
 | |
| 	CreatedBy string    `json:"CreatedBy"`
 | |
| 	UpdatedBy string    `json:"UpdatedBy"`
 | |
| 	CreatedAt time.Time `json:"CreatedAt"`
 | |
| 	UpdatedAt time.Time `json:"UpdatedAt"`
 | |
| 
 | |
| 	Endpoint            string `json:"Endpoint"`
 | |
| 	EndpointPublicKey   string `json:"EndpointPublicKey"`
 | |
| 	AllowedIPsStr       string `json:"AllowedIPsStr"`
 | |
| 	ExtraAllowedIPsStr  string `json:"ExtraAllowedIPsStr"`
 | |
| 	PresharedKey        string `json:"PresharedKey"`
 | |
| 	PersistentKeepalive int    `json:"PersistentKeepalive"`
 | |
| 
 | |
| 	DisplayName          string     `json:"DisplayName"`
 | |
| 	Identifier           string     `json:"Identifier"`
 | |
| 	UserIdentifier       string     `json:"UserIdentifier"`
 | |
| 	InterfaceIdentifier  string     `json:"InterfaceIdentifier"`
 | |
| 	Disabled             *time.Time `json:"Disabled,omitempty"`
 | |
| 	DisabledReason       string     `json:"DisabledReason,omitempty"`
 | |
| 	ExpiresAt            *time.Time `json:"ExpiresAt,omitempty"`
 | |
| 	Notes                string     `json:"Notes,omitempty"`
 | |
| 	AutomaticallyCreated bool       `json:"AutomaticallyCreated"`
 | |
| 
 | |
| 	PrivateKey string `json:"PrivateKey"`
 | |
| 	PublicKey  string `json:"PublicKey"`
 | |
| 
 | |
| 	InterfaceType string `json:"InterfaceType"`
 | |
| 
 | |
| 	Addresses         []string `json:"Addresses"`
 | |
| 	CheckAliveAddress string   `json:"CheckAliveAddress"`
 | |
| 	DnsStr            string   `json:"DnsStr"`
 | |
| 	DnsSearchStr      string   `json:"DnsSearchStr"`
 | |
| 	Mtu               int      `json:"Mtu"`
 | |
| 	FirewallMark      uint32   `json:"FirewallMark,omitempty"`
 | |
| 	RoutingTable      string   `json:"RoutingTable,omitempty"`
 | |
| 
 | |
| 	PreUp    string `json:"PreUp,omitempty"`
 | |
| 	PostUp   string `json:"PostUp,omitempty"`
 | |
| 	PreDown  string `json:"PreDown,omitempty"`
 | |
| 	PostDown string `json:"PostDown,omitempty"`
 | |
| }
 | |
| 
 | |
| // NewPeer creates a new Peer model from a domain.Peer.
 | |
| func NewPeer(src domain.Peer) Peer {
 | |
| 	return Peer{
 | |
| 		CreatedBy:            src.CreatedBy,
 | |
| 		UpdatedBy:            src.UpdatedBy,
 | |
| 		CreatedAt:            src.CreatedAt,
 | |
| 		UpdatedAt:            src.UpdatedAt,
 | |
| 		Endpoint:             src.Endpoint.GetValue(),
 | |
| 		EndpointPublicKey:    src.EndpointPublicKey.GetValue(),
 | |
| 		AllowedIPsStr:        src.AllowedIPsStr.GetValue(),
 | |
| 		ExtraAllowedIPsStr:   src.ExtraAllowedIPsStr,
 | |
| 		PresharedKey:         string(src.PresharedKey),
 | |
| 		PersistentKeepalive:  src.PersistentKeepalive.GetValue(),
 | |
| 		DisplayName:          src.DisplayName,
 | |
| 		Identifier:           string(src.Identifier),
 | |
| 		UserIdentifier:       string(src.UserIdentifier),
 | |
| 		InterfaceIdentifier:  string(src.InterfaceIdentifier),
 | |
| 		Disabled:             src.Disabled,
 | |
| 		DisabledReason:       src.DisabledReason,
 | |
| 		ExpiresAt:            src.ExpiresAt,
 | |
| 		Notes:                src.Notes,
 | |
| 		AutomaticallyCreated: src.AutomaticallyCreated,
 | |
| 		PrivateKey:           src.Interface.KeyPair.PrivateKey,
 | |
| 		PublicKey:            src.Interface.KeyPair.PublicKey,
 | |
| 		InterfaceType:        string(src.Interface.Type),
 | |
| 		Addresses:            domain.CidrsToStringSlice(src.Interface.Addresses),
 | |
| 		CheckAliveAddress:    src.Interface.CheckAliveAddress,
 | |
| 		DnsStr:               src.Interface.DnsStr.GetValue(),
 | |
| 		DnsSearchStr:         src.Interface.DnsSearchStr.GetValue(),
 | |
| 		Mtu:                  src.Interface.Mtu.GetValue(),
 | |
| 		FirewallMark:         src.Interface.FirewallMark.GetValue(),
 | |
| 		RoutingTable:         src.Interface.RoutingTable.GetValue(),
 | |
| 		PreUp:                src.Interface.PreUp.GetValue(),
 | |
| 		PostUp:               src.Interface.PostUp.GetValue(),
 | |
| 		PreDown:              src.Interface.PreDown.GetValue(),
 | |
| 		PostDown:             src.Interface.PostDown.GetValue(),
 | |
| 	}
 | |
| }
 |