update @ ScrollsController

スクロール更新

url

リクエスト

認証ユーザ
権限オーナー作家
methodput
urlパラメータid
POSTデータjson形式またはフォームで
html
json
jsonp×

解説

ScrollsEditフォームからスクロールデータを更新するための機能。

  • セッションまたは認証トークンからユーザアカウントを特定する。
  • ユーザアカウントから作家を取得する。
  • スクロールモデルに編集取得を問い合わせ、その結果を対象スクロールとして取得する。
    • 要求されたidと作家アカウントを渡す。
  • 対象スクロールのデータを与えられたPOSTデータで置き換える。
  • スクロールモデルに上書き補充を依頼して対象スクロールのデータを修正する。
  • スクロールモデルにデータの検証と更新を依頼する。
  • 作業結果をクライアントに戻す。

urlパラメータ

id

  • 編集の対象となるスクロールのid

POSTデータ

scroll スクロール情報

  • title
  • visible

auth_token

  • jsonで要求する場合、認証処置として認証トークンが必要。

戻り値

正常系

  • htmlのとき、ステータスコード302 Foundとともに、更新されたスクロールの閲覧(show)ページに遷移する。
  • jsonのとき、ステータスコード200 OKだけを返す。

参考:ScrollsUpdateView

例外系

  • ユーザアカウントでサインインしてなかった。(Devise)
    • htmlなら、ステータスコード302 Foundを返すとともに、サインインを促すページ(/users/sign_in)へ遷移する。
    • jsonなら、ステータスコード401 Unauthorizedを返すとともに、応答メッセージにUnauthorizedを返す。
    • ただし、オープンモードで起動しているなら、サインインの必要はないので例外とはならない。
  • 作家登録してなかった。
    • htmlなら、ステータスコード302 Foundを返すとともに、作家登録を促すページ(/authors/new)へ遷移する。
    • jsonなら、ステータスコード401 Unauthorizedを返すとともに、応答メッセージにUnauthorizedを返す。
  • 対象スクロールが存在しなかった。(ScrollModel)
    • htmlなら、例外404 not_foundを返す
    • jsonなら、例外404 not_foundを返す
  • 対象スクロールに対する編集権限がなかった。(ScrollModel)
    • 例外403 forbiddenを返す
    • 例外403 forbiddenを返す
  • 検証、保存に失敗した
    • htmlなら、ステータスコード200 OKとともに、編集ページを描画する。
      • パラメータで渡されたスクロールデータを入力フォームに保持している。
    • jsonなら、ステータスコード422 unprocessable_entityを返す。