settings
This commit is contained in:
		
							
								
								
									
										5
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								main.go
									
									
									
									
									
								
							@@ -46,6 +46,11 @@ func main() {
 | 
				
			|||||||
	r.HandleFunc("/api/codes", routers.CodesGet).Methods("GET")   // 获取验证码列表
 | 
						r.HandleFunc("/api/codes", routers.CodesGet).Methods("GET")   // 获取验证码列表
 | 
				
			||||||
	r.HandleFunc("/api/codes", routers.CodesPost).Methods("POST") // 创建一条验证码
 | 
						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.UsersGet).Methods("GET")                     // 获取用户列表
 | 
				
			||||||
	r.HandleFunc("/api/users", routers.UsersPost).Methods("POST")                   // 创建一条用户
 | 
						r.HandleFunc("/api/users", routers.UsersPost).Methods("POST")                   // 创建一条用户
 | 
				
			||||||
	r.HandleFunc("/api/users/{id}", routers.UsersItemGet).Methods("GET")            // 获取一条用户
 | 
						r.HandleFunc("/api/users/{id}", routers.UsersItemGet).Methods("GET")            // 获取一条用户
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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