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