// DispatchJSON receives an extension json request func DispatchJSON(w http.ResponseWriter, r *http.Request) { c := appengine.NewContext(r) // get namespace namespace := mux.Vars(r)["namespace"] if namespace == "" { startpage.Dispatch(w, r) return } shareURL := r.URL.Query().Get("url") if !govalidator.IsRequestURL(shareURL) { c.Errorf("Error at unmarshalling for share/json. Namespace: %v. Error: %v", namespace, shareURL) w.WriteHeader(http.StatusInternalServerError) return } i := extract.ItemFromURL(shareURL, r) i.Namespace = namespace c.Infof("Item: %v", i) if err := data.StoreItem(c, i); err != nil { c.Errorf("Error at in StoreItem. Item: %v. Error: %v", i, err) w.WriteHeader(http.StatusInternalServerError) return } w.Write(statusOk) }
//DispatchWWW returns the HTML view of a namespace func DispatchWWW(w http.ResponseWriter, r *http.Request) { //c := appengine.NewContext(r) var value wwwTemplateValues value.Namespace = mux.Vars(r)["namespace"] if value.Namespace == "" { startpage.Dispatch(w, r) return } if err := templateWWW.Execute(w, value); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } }
// DispatchJSON executes all commands for the www target func DispatchJSON(w http.ResponseWriter, r *http.Request) { c := appengine.NewContext(r) // get namespace namespace := mux.Vars(r)["namespace"] if namespace == "" { startpage.Dispatch(w, r) return } empty, err := data.NamespaceIsEmpty(c, namespace) if err == nil { if empty { w.Write(statusOk) } else { w.Write(statusInUse) } } else { w.Write(statusError) } }