settings
This commit is contained in:
		
							
								
								
									
										96
									
								
								routers/setting.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								routers/setting.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
 | 
			
		||||
	"github.com/gorilla/mux"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	// 初始化检查 data/setting 目录是否存在,不存在则创建
 | 
			
		||||
	if _, err := os.Stat("data/settings"); os.IsNotExist(err) {
 | 
			
		||||
		if err := os.MkdirAll("data/settings", 0755); err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 初始化阿里云短信服务配置 aliyun.json
 | 
			
		||||
	if _, err := os.Stat("data/settings/aliyun.json"); os.IsNotExist(err) {
 | 
			
		||||
		// 如果不存在则创建
 | 
			
		||||
		var config = struct {
 | 
			
		||||
			AccessKeyId     string
 | 
			
		||||
			AccessKeySecret string
 | 
			
		||||
			SignName        string
 | 
			
		||||
			TemplateCode    string
 | 
			
		||||
		}{
 | 
			
		||||
			AccessKeyId:     "your-access-key-id",
 | 
			
		||||
			AccessKeySecret: "",
 | 
			
		||||
			SignName:        "",
 | 
			
		||||
			TemplateCode:    "",
 | 
			
		||||
		}
 | 
			
		||||
		data, err := json.MarshalIndent(config, "", "  ")
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		err = os.WriteFile("data/settings/aliyun.json", data, 0644)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			fmt.Println(err)
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		fmt.Println("初始化阿里云短信服务配置 aliyun.json 成功")
 | 
			
		||||
		fmt.Println(string(data))
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SettingsGetItem(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	// 从 data/setting 目录下读取json文件
 | 
			
		||||
	vars := mux.Vars(r)
 | 
			
		||||
	filename := vars["id"] + ".json"
 | 
			
		||||
	data, err := os.ReadFile("data/settings/" + filename)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	w.Write(data)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SettingsGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	// 获取设置列表, 直接从 data/setting 目录下读取json文件列表
 | 
			
		||||
	var files []string
 | 
			
		||||
	err := filepath.Walk("data/settings", func(path string, info os.FileInfo, err error) error {
 | 
			
		||||
		if info.IsDir() {
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
		// 去除文件后缀名, 且不要展示路径
 | 
			
		||||
		files = append(files, info.Name()[:len(info.Name())-5])
 | 
			
		||||
		return nil
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	fmt.Println(files)
 | 
			
		||||
	// 输出json列表, files 数组转 JSON
 | 
			
		||||
	data, _ := json.MarshalIndent(files, "", "  ")
 | 
			
		||||
	w.Write(data)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建一条设置
 | 
			
		||||
func SettingsPost(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	w.Write([]byte("[]"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 读取一条设置
 | 
			
		||||
func SettingsItemGet(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	w.Write([]byte("[]"))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改一条设置
 | 
			
		||||
func SettingsPatch(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	w.Write([]byte("[]"))
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user