func AddKey(w http.ResponseWriter, r *http.Request) { keys := map[string]string{} if err := parseBody(r.Body, &keys); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if len(keys) == 0 { http.Error(w, "A key is needed", http.StatusBadRequest) return } uName := r.URL.Query().Get(":name") if err := user.AddKey(uName, keys); err != nil { switch err { case user.ErrInvalidKey: http.Error(w, err.Error(), http.StatusBadRequest) case user.ErrDuplicateKey: http.Error(w, "Key already exists.", http.StatusConflict) case user.ErrUserNotFound: http.Error(w, err.Error(), http.StatusNotFound) default: http.Error(w, err.Error(), http.StatusInternalServerError) } return } fmt.Fprint(w, "Key(s) successfully created") }
func AddKey(w http.ResponseWriter, r *http.Request) { keys := map[string]string{} if err := parseBody(r.Body, &keys); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } if len(keys) == 0 { http.Error(w, "A key is needed", http.StatusBadRequest) return } uName := r.URL.Query().Get(":name") if err := user.AddKey(uName, keys); err != nil { http.Error(w, err.Error(), http.StatusNotFound) return } fmt.Fprint(w, "Key(s) successfully created") }