func (uis *UIServer) addProject(w http.ResponseWriter, r *http.Request) { dbUser := MustHaveUser(r) _ = MustHaveProjectContext(r) vars := mux.Vars(r) id := vars["project_id"] projectRef, err := model.FindOneProjectRef(id) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } if projectRef != nil { http.Error(w, "Project already exists", http.StatusInternalServerError) return } newProject := model.ProjectRef{ Identifier: id, Enabled: true, Tracked: true, RepoKind: "github", } err = newProject.Insert() if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } allProjects, err := uis.filterAuthorizedProjects(dbUser) if err != nil { uis.LoggedError(w, r, http.StatusInternalServerError, err) return } data := struct { Available bool ProjectId string AllProjects []model.ProjectRef }{true, id, allProjects} uis.WriteJSON(w, http.StatusOK, data) }