97 lines
2.2 KiB
Go
97 lines
2.2 KiB
Go
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("[]"))
|
|
}
|