package users import ( "auth_service/api/jwt" "auth_service/database" "auth_service/model" "encoding/json" "fmt" "net/http" "github.com/google/uuid" ) func AddUser(w http.ResponseWriter, req *http.Request) { w.Header().Set("Content-Type", "application/json") var request model.AddUserRequest decoder := json.NewDecoder(req.Body) decoder.Decode(&request) claims, e := jwt.VerifyJWT(request.Token, jwt.Defaultsecretkey) if e != nil { fmt.Fprintf(w, "{\"status\": 403}") return } if claims["is_superuser"] == true { id, err := uuid.NewRandom() if err != nil { fmt.Fprintf(w, "{\"error\":\"%v\"}", err) return } _, e := database.GetUserByUsername(request.Username) if e != nil { e = database.CreateUser(&model.User{ Id: id.String(), Username: request.Username, Email: request.Email, Password: request.Password, Group: request.Group, IsSuperuser: request.IsSuperuser, }) if e != nil { fmt.Fprintf(w, "{\"error\":\"%v\"}", e) return } fmt.Fprintf(w, "{\"status\": 200}") return } fmt.Fprintf(w, "{\"error\":\"username already exists\"}") return } fmt.Fprintf(w, "{\"status\":403}") }