mirror of
				https://github.com/h44z/wg-portal.git
				synced 2025-11-03 23:56:18 +00:00 
			
		
		
		
	Fixes & API unit testing (#58)
* api - add OperationID helps when using pyswagger and is visible via http://localhost:8123/swagger/index.html?displayOperationId=true gin-swagger can not set displayOperationId yet * api - match paramters to their property equivalents pascalcase & sometimes replacing the name (e.g. device -> DeviceName) * api - use ShouldBindJSON instead of BindJSON BindJSON sets the content-type text/plain * api - we renamed, we regenerated * device - allow - in DeviceName wg-example0.conf etc * api - more pascalcase & argument renames * api - marshal DeletedAt as string gorm.DeletedAt is of type sql.NullTime NullTime declares Time & Valid as properties DeletedAt marshals as time.Time swaggertype allows only basic types -> string * Peer - export UID/DeviceType in json UID/DeviceType is required, skipping in json, skips it in marshalling, next unmarshalling fails * assets - name forms for use with mechanize * api - match error message * add python3/pyswagger based unittesting - initializes a clean install by configuration via web service - tests the rest api * tests - test address exhaustion * tests - test network expansion Co-authored-by: Markus Koetter <koetter@cispa.de>
This commit is contained in:
		@@ -66,9 +66,9 @@ type Peer struct {
 | 
			
		||||
	Peer   *wgtypes.Peer `gorm:"-" json:"-"` // WireGuard peer
 | 
			
		||||
	Config string        `gorm:"-" json:"-"`
 | 
			
		||||
 | 
			
		||||
	UID                  string     `form:"uid" binding:"required,alphanum" json:"-"` // uid for html identification
 | 
			
		||||
	UID                  string     `form:"uid" binding:"required,alphanum"` // uid for html identification
 | 
			
		||||
	DeviceName           string     `gorm:"index" form:"device" binding:"required"`
 | 
			
		||||
	DeviceType           DeviceType `gorm:"-" form:"devicetype" binding:"required,oneof=client server" json:"-"`
 | 
			
		||||
	DeviceType           DeviceType `gorm:"-" form:"devicetype" binding:"required,oneof=client server"`
 | 
			
		||||
	Identifier           string     `form:"identifier" binding:"required,max=64"` // Identifier AND Email make a WireGuard peer unique
 | 
			
		||||
	Email                string     `gorm:"index" form:"mail" binding:"required,email"`
 | 
			
		||||
	IgnoreGlobalSettings bool       `form:"ignoreglobalsettings"`
 | 
			
		||||
@@ -244,7 +244,7 @@ type Device struct {
 | 
			
		||||
	Peers     []Peer          `gorm:"foreignKey:DeviceName" binding:"-" json:"-"` // linked WireGuard peers
 | 
			
		||||
 | 
			
		||||
	Type        DeviceType `form:"devicetype" binding:"required,oneof=client server"`
 | 
			
		||||
	DeviceName  string     `form:"device" gorm:"primaryKey" binding:"required,alphanum"`
 | 
			
		||||
	DeviceName  string     `form:"device" gorm:"primaryKey" binding:"required" validator:"regexp=[0-9a-zA-Z\-]+"`
 | 
			
		||||
	DisplayName string     `form:"displayname" binding:"omitempty,max=200"`
 | 
			
		||||
 | 
			
		||||
	// Core WireGuard Settings (Interface section)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user