play @ StoriesController

ストーリー閲覧。ストーリーを読むための機能。

url

リクエスト

認証読者*
権限
methodget
urlパラメータid{page}
POSTデータjson形式*
html
json
jsonp×

*オープンモードのとき、誰でも可 →RunMode

解説

スト紙でストーリーにつながっているコマを指定されたオフセット位置からコマ数だけ時系列t順に表示する。ストーリーidを指定してスト紙(とコマ)のリストを取得する。

  • セッションまたは認証トークンからユーザアカウントを特定する。
  • ストーリーモデルに単体取得を問い合わせ、その結果を対象ストーリーとして取得する。
    • 要求されたidとロールリスト(ユーザアカウントと管理者アカウント)を渡す。
  • スト紙モデルにオフセットとコマ数の解釈を依頼する。
  • スト紙モデルにプレイリスト取得を依頼する。
    • 要求されたidと作家アカウントとオフセットとコマ数を渡す。
  • 取得したデータを返す。

urlパラメータ

id

  • ストーリーid

page

  • 表示するデータが何ページ目からのものか。

POSTデータ

戻り値

正常系

  • htmlのとき、ステータスコード200 OKとともに、テンプレートから起こしたページを返す。
  • jsonのとき、ステータスコード200 OKとともに、json構造のデータを返す。
    • 出力はスト紙モデルのスト紙リストのjson出力に従う

参考:StoriesPlayView

例外系

  • ユーザまたは管理者アカウントでサインインしてなかった。(Devise)
    • htmlなら、ステータスコード302 Foundを返すとともに、サインインを促すページ(/users/sign_in)へ遷移する。
    • jsonなら、ステータスコード401 Unauthorizedを返すとともに、応答メッセージにUnauthorizedを返す。
    • ただし、オープンモードで起動しているなら、サインインの必要はないので例外とはならない。
  • 対象ストーリーがなかった。(StoryModel)
    • htmlなら、例外404 not_foundを返す
    • jsonなら、例外404 not_foundを返す
  • 対象ストーリーに対する閲覧権限がなかった。(StoryModel)
    • 例外403 forbiddenを返す
    • 例外403 forbiddenを返す