ライセンスグループ @ LicenseGroupSpec

カラム

name和名typedefaultnulllimitnote
name管理名string FALSE50ライセンスグループ名
classnameクラス名string FALSE50処理するクラスの名前
caption名前string FALSE30ライセンスグループ名
urlURLstring FALSE ライセンストップページurl
created_at作成datetime
updated_at更新datetime

作成手順

インポート機能を通してjsonファイルから作成する。

検証

カラム別

name

  • nullでないこと。
  • 50文字以内であること。
  • ユニークであること。

classname

  • nullでないこと。
  • 50文字以内であること。

caption

  • nullでないこと。
  • 30文字以内であること。

url

  • 200文字以内であること。
  • URL形式であること。

全体

機能

デフォルト値補充

supply_default()

パラメータ

解説

  • 補充すべきデータはない。

overwrite

パラメータ

解説

  • 補充すべきデータはない。

一覧取得

list()

パラメータ

解説

他の一覧と違ってページ制御しない。ユーザがwebページから操作する想定はしておらず、APIから取得するための機能であって、なおかつ数量が限られる性質のデータだから。

  • ライセンスグループを名前順に取得する。
  • 関連データとして一覧取得オプションで定義されたモデルを含む。

一覧取得オプション

下記の関連テーブルを含む

  • license

json一覧出力オプション

下記の関連テーブルのカラムを含む

  • license (*)

単体取得

show(id)

パラメータ

  • id:ライセンスグループid

解説

  • idのライセンスグループを取得する。
  • 関連データとして単体取得オプションを与えることができる。
  • 存在しないライセンスグループのidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

単体取得オプション

下記の関連テーブルを含む

  • license

json単体出力オプション

下記の関連テーブルのカラムを含む

  • license (*)

更新

self.store(name, attr)

パラメータ

  • name:ライセンスグループ名
  • attr:カラム値

解説

  • インポート処理のデータ更新準備に依頼してオブジェクトをもらう。
    • ライセンスグループ名とカラム値を渡す。
  • オブジェクトを保存する。
  • ライセンスモデルに複数の更新を依頼する。
    • attrからlicenses_attributesを取り出して、オブジェクト保存で確定したライセンスグループのidを渡す。
    • attrのlicenses_attributesは削除する。
    • 戻り値(失敗件数)が0でなければ全体エラーメッセージに件数をセットする。
  • オブジェクトを返す。

インポート

self.import(filename)

パラメータ

  • filename:ライセンスデータ

解説

json表記されたテキストファイルをライセンスグループデータとしてインポートする。

  • ファイルインポート処理を依頼してインポートに失敗したオブジェクトを返してもらう。
    • 一件ずつ繰り返し渡ってくるライセンスグループデータをブロック内で保存していく。
    • ブロックはライセンスグループ名とカラム値のペアで渡ってくる。
    • 更新処理を依頼して生成されたオブジェクトを返してもらう。
      • ライセンスグループ名とカラム値を渡す。
  • ファイルインポート処理は、全件成功しない限りはロールバックする。