絵師対照表 @ AboutModels

各貸手に参加している絵師を取り込んで、自分のサイトの絵師idと照らし合わせる。

参考:ProviderArtistsController

カラム

name和名typedefaultnulllimitnote
provider_id貸手integerfalse
providers_artist_id貸手側の絵師idintegerfalse
demanders_artist_id借手側の絵師idintegerfalse

検証

カラム別

provider_id

  • nullでないこと。
  • 数値であること
  • 存在する貸手であること。

providers_artist_id

  • nullでないこと。
  • 数値であること

demanders_artist_id

  • nullでないこと。
  • 数値であること
  • 存在する絵師であること。

対照表取得

self.get_one pid, paid

パラメータ

  • pid:貸手id
  • paid:貸手側絵師id

戻り

対照表オブジェクト

解説

  • 対照表モデルにを問い合わせ、対照表を取得する。
    • 貸手idと貸手側絵師idを渡す。
  • 取得した対照表を返す。
  • 例外ケース
    • 該当する対照表が存在しなかったら、新規に興した対照表オブジェクトを返す。

貸手側絵師同期

modify_artist attr

パラメータ

attr:貸手側の絵師カラム値

戻り

絵師オブジェクト

解説

貸手側に登録されている絵師の情報を取り込んで同期する。

  • 自身に絵師がリンクしてないとき
    • 絵師オブジェクトを新規に興す。
  • 自身に絵師がリンクしているとき
    • 自身から絵師を取得する。
  • 絵師にカラム値をセットする。
    • 貸手側絵師カラム値から絵師名をセットする。
  • 作家idをクリアする。(外絵師の証明)
  • 絵師オブジェクトを保存する。
  • 絵師オブジェクトを返す。

インポート

self.import pid, artists

パラメータ

  • pid:貸手id
  • artists:貸手側の絵師リスト
    • 絵師のカラム値

戻り

ImportResult

解説

  • トランザクションは全件単位となる。
  • 貸手側の絵師リストを繰り返し処理して、各貸手側絵師の対照表を作成する。
    • 対照表取得を問い合わせ、対照表を取得する。
      • 貸手idと貸手側絵師のidを渡す。
    • 対照表に絵師同期を依頼して、インポートした絵師を取得する。
      • 貸手側絵師のカラム値を渡す。
    • 対照表にカラム値をセットする。
      • 貸手側絵師から貸手側の絵師idを、借手側の絵師から絵師idを、パラメータの貸手idから貸手idをセットする。
    • 対照表オブジェクトを保存する。
  • ImportResultを生成して返す。
    • 失敗結果を渡す。
  • 警告ケース
    • 対照表オブジェクトの保存に失敗したなら、結果に貸手側絵師のカラム値を追加する。
    • 絵師オブジェクトの保存に失敗したなら、結果に貸手側絵師のカラム値を追加する。