zerebom / tsukumen-backend

つくばのラーメンを推薦するアプリ”ツクめん”のバックエンド実装レポジトリ
2 stars 0 forks source link

GCPのレスポンスをRailsのActiveRecordに変換し、DBに格納する #18

Open zerebom opened 3 years ago

zerebom commented 3 years ago

Why

15 で取得したGCPのレスポンスをDBに格納したい。

What

直接Modelにメソッドを生やすとロジックが集約されて筋が良さそう。 各モデルにクラスメソッドを作成し、GCPのレスポンスであるresult(=json)を渡して組み立てることにする。

例↓

class Shop < ApplicationRecord
  has_many :reviews, dependent: :destroy
  has_many :photos, dependent: :destroy
  has_one :address

  # ref: https://qiita.com/suzuki-koya/items/1553c405beeb73f83bbc
  def self.from_result(result:,
                       place_id:)
    shop = self.new
    shop.name = result['name']
    shop.phone_number = result['formatted_phone_number']
    shop.email = result['email']
    shop.place_id = place_id
    shop
  end
end

また、挙動の確認にはうちの会社で使われているテストライブラリである、Rspecでテストを書くことにした。

https://qiita.com/tocomi/items/2dba0de52eefdcf33fd7

残タスク

懸念点