func handleDatabase(w http.ResponseWriter, db nosql.Database, method string) { switch { case method == "GET": exists, err := db.Exists(ctx) if err != nil { http.Error(w, "error in db.Exists()", 500) return } if !exists { http.Error(w, "db doesn't exist", 404) return } tables, err := db.ListTables(ctx) if err != nil { http.Error(w, "error in db.ListTables()", 500) return } urls := make([]string, len(tables)) for i, tableName := range tables { urls[i] = fmt.Sprintf("//%s/%s", db.Name(), tableName) } jsondat, err := json.Marshal(urls) if err != nil { http.Error(w, "error generating JSON", 500) return } w.Header().Add("Content-type", "Application/json") w.Write(jsondat) case method == "POST": exists, err := db.Exists(ctx) if err != nil { http.Error(w, "error in db.Exists()", 500) return } if exists { http.Error(w, "database already exists", 409) return } if err := db.Create(ctx, nil); err != nil { http.Error(w, "error creating database", 500) return } default: http.Error(w, "unsupported method for database", 400) return } }