// AddOrganizationRegistryEntry is the handler for POST /organizations/{globalid}/registry // Adds a RegistryEntry to the organization's registry, if the key is already used, it is overwritten. func (api OrganizationsAPI) AddOrganizationRegistryEntry(w http.ResponseWriter, r *http.Request) { globalid := mux.Vars(r)["globalid"] registryEntry := registry.RegistryEntry{} if err := json.NewDecoder(r.Body).Decode(®istryEntry); err != nil { http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest) return } if err := registryEntry.Validate(); err != nil { log.Debug("Invalid registry entry: ", registryEntry) http.Error(w, http.StatusText(http.StatusBadRequest), http.StatusBadRequest) return } mgr := registry.NewManager(r) err := mgr.UpsertRegistryEntry("", globalid, registryEntry) if err != nil { log.Error(err.Error()) http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") w.WriteHeader(http.StatusCreated) json.NewEncoder(w).Encode(registryEntry) }
// ListOrganizationRegistry is the handler for GET /organizations/{globalid}/registry // Lists the Registry entries func (api OrganizationsAPI) ListOrganizationRegistry(w http.ResponseWriter, r *http.Request) { globalid := mux.Vars(r)["globalid"] mgr := registry.NewManager(r) registryEntries, err := mgr.ListRegistryEntries("", globalid) if err != nil { log.Error(err.Error()) http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(registryEntries) }
// DeleteOrganizationRegistryEntry is the handler for DELETE /organizations/{username}/globalid/{key} // Removes a RegistryEntry from the organization's registry func (api OrganizationsAPI) DeleteOrganizationRegistryEntry(w http.ResponseWriter, r *http.Request) { globalid := mux.Vars(r)["globalid"] key := mux.Vars(r)["key"] mgr := registry.NewManager(r) err := mgr.DeleteRegistryEntry("", globalid, key) if err != nil { log.Error(err.Error()) http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError) return } w.WriteHeader(http.StatusNoContent) }