package api import ( "encoding/json" "fmt" "form/database" "form/model" "net/http" ) func GetAllUsers(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") var request model.GetAllUsersRequest decoder := json.NewDecoder(req.Body) decoder.Decode(&request) claims, e := VerifyJWT(request.Token, defaultsecretkey) if e != nil || claims["is_superuser"] != true { fmt.Fprintf(w, "{\"status\":403}") return } users, e := database.GetAllUsers() if e != nil { fmt.Fprintf(w, "{\"error\":\"%v\"}", e) return } var responseUsers []model.UserResponse for i := range users { responseUsers = append(responseUsers, model.UserResponse{ Id: users[i].Id, Username: users[i].Username, Email: users[i].Email, Group: users[i].Group, IsSuperuser: users[i].IsSuperuser, }) } jsondata, _ := json.Marshal(responseUsers) fmt.Fprint(w, string(jsondata)) } func GetUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") var request model.Token decoder := json.NewDecoder(req.Body) decoder.Decode(&request) claims, e := VerifyJWT(request.Token, defaultsecretkey) if e != nil { fmt.Fprintf(w, "{\"status\":403}") return } user, e := database.GetUserByUsername(fmt.Sprintf("%v", claims["username"])) if e != nil { fmt.Fprintf(w, "{\"error\":\"%v\"}", e) return } responseUser := model.UserResponse{ Id: user.Id, Username: user.Username, Email: user.Email, Group: user.Group, IsSuperuser: user.IsSuperuser, } jsondata, _ := json.Marshal(responseUser) fmt.Fprint(w, string(jsondata)) } func ChangePassword(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") } func DelUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") } func AddUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") } func RegisterUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") } func ChangeUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") }