借受状況 @ AboutModels

貸手との関係と借受状況

参考:ProviderStatusesController

カラム

name和名typedefaultnulllimitnote
tokenトークンstring
receive_hour1巡回時1integer
receive_hour2巡回時2integer
received_at前回巡回日時datetime
stopped_at停止日時datetimefalse

検証

カラム別

token

receive_hour1

  • 数値であること

receive_hour2

  • 数値であること

機能

デフォルト値補充

supply_default()

パラメータ

解説

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

上書き補充

overwrite()

パラメータ

解説

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

所持判定

own?(ad)

パラメータ

  • ad:検査対象

解説

検査対象が借受状況の持ち主かどうかをTrue/Falseで返す。管理者権限があれば、誰しもがオーナーである。

  • パラメータが管理者でないならFalse
  • パラメータが管理者ならTrue

閲覧許可

visible?(ad)

パラメータ

  • ad:検査対象

解説

検査対象が借受状況を閲覧できるかどうかを判定する

  • 検査対象が管理者のとき
    • 許可を返す。
  • 検査対象がそれ以外のとき
    • 不許可を返す。

状態

status

パラメータ

戻り

数値

解説

借受状態を数値で返す。

  • 借り受けしていないのとき0を返す。
  • 借り受けしているのとき1を返す。

1ページの件数

self.default_page_size

パラメータ

解説

一覧取得時に返す件数のデフォルト値

  • 25を返す。

1ページの最大件数

self.max_page_size

パラメータ

解説

ユーザは一覧取得時に返す件数を指定できるが、システムは上限値を設定できる

  • 100を返す。

ページ位置補正

self.page prm = nil

パラメータ

  • prm:ページ位置

解説

一覧取得時に何ページ目を返すかの指定値を補正

  • パラメータを数値として認識する
  • 省略時は1
  • 0以下のときは1

ページ数補正

self.page_size prm = self.default_page_size

パラメータ

  • prm:ページ数

解説

一覧で取得する件数

  • パラメータを数値として認識する
  • 省略時は1
  • 0以下のときは1
  • 1ページの最大件数を上回っているなら、1ページの件数を返す。

一覧取得

list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • 借受状況を貸手の管理名順に取得する。
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

待機中リスト

available_list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • 借受状況を貸手の管理名順に取得する。
  • 借受状況のトークンが設定されていない行に限る
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

承認済リスト

approve_list(page = 1, page_size = self.default_page_size)

パラメータ

  • page:何ページ目か
  • page_size:1ページに収まる件数

解説

  • 借受状況を貸手の管理名順に取得する。
  • 借受状況のトークンが設定されている行に限る
  • 関連データとして一覧取得オプションで定義されたモデルを含む。
  • ページ処理に対応し、毎ページn件の条件でmページ目から取得することができる。
    • ただし、page_sizeが0のときは全件取得してページ制御しない。

一覧取得オプション

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

  • provider

json一覧出力オプション

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

  • provider (*)

単体取得

show(id, ad)

パラメータ

  • id:借受状況id
  • ad:管理者データ

解説

  • idの借受状況を取得する。
  • 関連データとして単体取得オプションを与えることができる。
  • 借受状況に閲覧許可を問い合わせ、不許可なら、例外403 ActiveRecord::Forbiddenを発生させる。
  • 存在しない借受状況のidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

編集取得

edit(id, ad)

パラメータ

  • id:借受状況id
  • ad:管理者データ

解説

  • idの借受状況を取得する。
  • 関連データとして単体取得オプションで定義されたモデルを含む。
  • 借受状況に所持判定を問い合わせ、不所持なら、例外403 ActiveRecord::Forbiddenを発生させる。
  • 存在しない借受状況のidを要求された場合は、例外404 ActiveRecord::RecordNotFoundを発生させる。

単体取得オプション

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

  • provider

json単体出力オプション

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

  • provider (*)

エクスポートurl取得

export_url demander_url, action, token, date

パラメータ

  • demander_url:貸手の借手ページurl
  • action:対象アクション
  • token:トークン
  • date:エクスポート日時

戻り

エクスポートurl文字列

解説

  • 貸手の借手ページurlが/で終わらないときは、末尾に/を追加する。
  • 貸手の借手ページurlに対象アクションを追加する。
  • 貸手の借手ページurlにトークンパラメータを追加する。
  • エクスポート日時が設定されているときは、それをパラメータ追加する。
  • エクスポートurl文字列を返す。

貸手からのエクスポート通信

export_from_provider url

パラメータ

  • url:エクスポートurl

戻り

Hash式JSONデータ(エラーのときはnil)

解説

  • Restクライアントに取得通信を依頼して、エクスポート文字列を取得する。
    • エクスポートurlを渡す。
  • JSONライブラリにパースを依頼して、JSONデータを取得する。
    • エクスポート文字列を渡す。
  • JSONデータを返す。
  • 例外ケース
    • エクスポートかパースでエラーが発生したときは、nilを返す。

貸手からのエクスポート

export_by action, provider_status, ymd

パラメータ

  • action:対象アクション
  • provider_status:借受状況
  • ymd:年月日文字列

戻り

Hash式JSONデータ(エラーのときはnil)

解説

  • 日付文字列変換を依頼して、エクスポート日時を取得する。
    • 年月日を渡す。
  • エクスポートurl取得を依頼して、貸手サイトのエクスポートurlを取得する。
    • 借受状況から貸手をたどって、貸手の借手ページurlと対象アクションとトークン、そしてエクスポート日時を渡す。
  • 貸手からのエクスポート通信を依頼して、リストを取得する。
    • エクスポートurlを渡す。
  • リストを返す。

インポート

self.import pid, licenses

パラメータ

  • pid:貸手id
  • exports:貸手側のエクスポートデータ

戻り値

カラム値の配列で返す。

  • {licenses => [] artists original_pictures}

解説

  • トランザクションは全件単位となる。
  • ライセンス対照表にインポートを依頼して、ライセンスインポート結果を取得する。
    • エクスポートデータからライセンスリストを取得して、貸手idと合わせて渡す。
  • 絵師対照表にインポートを依頼して、絵師インポート結果を取得する。
    • エクスポートデータから絵師リストを取得して、貸手idと合わせて渡す。
  • 原画対照表にインポートを依頼して、原画インポート結果を取得する。
    • エクスポートデータから原画セットリストを取得して、貸手idと合わせて渡す。
  • それぞれの結果を配列で返す。
  • 警告ケース
    • インポートに失敗したなら、失敗結果を追加する。