first commit
This commit is contained in:
		
							
								
								
									
										47
									
								
								storage/file.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								storage/file.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
package storage
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"gitlab.127-0-0-1.fr/vx3r/wg-gen-web/model"
 | 
			
		||||
	"gitlab.127-0-0-1.fr/vx3r/wg-gen-web/util"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Serialize write interface to disk
 | 
			
		||||
func Serialize(id string, c interface{}) error {
 | 
			
		||||
	b, err := json.MarshalIndent(c, "", "  ")
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return util.WriteFile(filepath.Join(os.Getenv("WG_CONF_DIR"), id), b)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deserialize read interface from disk
 | 
			
		||||
func Deserialize(id string) (interface{}, error) {
 | 
			
		||||
	path := filepath.Join(os.Getenv("WG_CONF_DIR"), id)
 | 
			
		||||
 | 
			
		||||
	data, err := util.ReadFile(path)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if id == "server.json" {
 | 
			
		||||
		var s *model.Server
 | 
			
		||||
		err = json.Unmarshal(data, &s)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return nil, err
 | 
			
		||||
		}
 | 
			
		||||
		return s, nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// if not the server, must be client
 | 
			
		||||
	var c *model.Client
 | 
			
		||||
	err = json.Unmarshal(data, &c)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return c, nil
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user