This commit is contained in:
2023-08-26 18:51:28 +08:00
parent 6d9737a5d2
commit fc34d9ea6e
2 changed files with 101 additions and 0 deletions

View File

@@ -46,6 +46,11 @@ func main() {
r.HandleFunc("/api/codes", routers.CodesGet).Methods("GET") // 获取验证码列表
r.HandleFunc("/api/codes", routers.CodesPost).Methods("POST") // 创建一条验证码
r.HandleFunc("/api/settings", routers.SettingsGet).Methods("GET") // 获取设置列表
r.HandleFunc("/api/settings", routers.SettingsPost).Methods("POST") // 创建一条设置
r.HandleFunc("/api/settings/{id}", routers.SettingsGetItem).Methods("GET") // 获取一条设置
r.HandleFunc("/api/settings/{id}", routers.SettingsPatch).Methods("PATCH") // 修改一条设置
r.HandleFunc("/api/users", routers.UsersGet).Methods("GET") // 获取用户列表
r.HandleFunc("/api/users", routers.UsersPost).Methods("POST") // 创建一条用户
r.HandleFunc("/api/users/{id}", routers.UsersItemGet).Methods("GET") // 获取一条用户

96
routers/setting.go Normal file
View 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("[]"))
}