func changeAccountPassword(ctx context.Context, w http.ResponseWriter, r *http.Request) { var acct account.Account var email string var newPassword string // read the account ID if emailBytes, err := base64.RawURLEncoding.DecodeString(rest.Param(ctx, "id")); err != nil { rest.WriteJSON(w, err) return } else { email = string(emailBytes) } if err := rest.ReadJSON(r, &newPassword); err != nil { rest.WriteJSON(w, err) } else if err := account.Get(ctx, email, &acct); err != nil { rest.WriteJSON(w, err) } else if err := acct.SetPassword(newPassword); err != nil { rest.WriteJSON(w, err) } else if err := account.Save(ctx, &acct); err != nil { rest.WriteJSON(w, err) } else { rest.WriteJSON(w, &rest.NoContent) } }