create @ ResourcePicturesController

素材の作成。

url

リクエスト

認証ユーザ
権限絵師
methodpost
urlパラメータなし
POSTデータjson形式またはフォームで
html
js×
json
jsonp×

解説

ResourcePicturesNewフォームから素材を作成するための機能。この処理を通すことで、やっと素材が完成する。

  • セッションまたは認証トークンからユーザアカウントを特定する。
  • ユーザアカウントから作家を取得する。
  • 作家から絵師を取得する。
  • 原画モデルに編集取得を依頼して、原画を取得する。
    • POSTデータの原画idと絵師を渡す。
  • 画像ライブラリをロードする。
    • 原画モデルに画像データを問い合わせる。
  • 原画ライセンスグループデータを起こす。
    • POSTデータの原画ライセンスグループ情報を適用する。
  • ライセンスグループモデルに単体取得を依頼して、ライセンスグループを取得する。
    • 原画ライセンスグループデータのライセンスグループidを渡す。
  • 素材モデルから、素材データを準備する。
    • ライセンスを与えようとしている原画が既に素材を作成していれば、それを取得する。
    • 素材がなければ、素材モデルの初期データを生成した後、素材モデルにデフォルト値を補充してもらう。
  • 素材データにPOSTデータの素材情報を適用する。
  • 素材モデルに上書き補充を依頼する。
    • 原画を渡す。
  • 素材モデルに保存を依頼する。
    • 画像ライブラリを渡す。
  • 作業結果をクライアントに戻す。

urlパラメータ

なし

POSTデータ

original_picture_id

  • 前段階から渡ってくる原画idを引き継いで受け取り

original_picture_license_group 原画ライセンスグループ情報

  • original_picture_id
    • 原画ライセンスグループを適用する原画のid
  • license_group_id
    • 原画に採択したライセンスグループのid

resource_pictures

  • license_id
    • 原画に採択したライセンスグループのid
  • artist_name
    • 原画の著作者
  • credit
    • engineが生成するクレジット表示情報
  • settings
    • 採択したライセンスの拡張情報

auth_token

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

戻り値

正常系

  • htmlのとき、ステータスコード200 OKとともに、素材の詳細(show)ページを描画する。
  • jsonのとき、ステータスコード200 OKとともに、json構造のデータを返す。
    • 出力フォーマットは素材モデルのjson単体出力オプションに従う

例外系

  • ユーザアカウントでサインインしてなかった。(Devise)
    • htmlなら、ステータスコード302 Foundを返すとともに、サインインを促すページ(/users/sign_in)へ遷移する。
    • jsonなら、ステータスコード401 Unauthorizedを返すとともに、応答メッセージにUnauthorizedを返す。
  • 絵師登録してなかった。
    • htmlなら、ステータスコード302 Foundを返すとともに、絵師登録を促すページ(/artists/new)へ遷移する。
    • jsonなら、ステータスコード401 Unauthorizedを返すとともに、応答メッセージにUnauthorizedを返す。
  • 対象原画がなかった。(OriginalPictureModel)
    • htmlなら、例外404 not_foundを返す
    • jsonなら、例外404 not_foundを返す
  • 他人の原画だった。(OriginalPictureModel)
    • htmlなら、例外403 forbiddenを返す
    • jsonなら、例外403 forbiddenを返す
  • 対象ライセンスグループがなかった。(LicenseGroupModel)
    • htmlなら、例外404 not_foundを返す
    • jsonなら、例外404 not_foundを返す
  • 検証に失敗した
    • htmlなら、ステータスコード200 OKとともに、新規ページを描画する。
      • パラメータで渡されたデータを入力フォームに保持している。
    • jsonなら、ステータスコード422 unprocessable_entityを返す。