diff --git a/app/models/card_cycle.rb b/app/models/card_cycle.rb index b5488fc4..85430a6f 100644 --- a/app/models/card_cycle.rb +++ b/app/models/card_cycle.rb @@ -2,5 +2,6 @@ class CardCycle < ApplicationRecord has_many :card_sets - # TODO(plural): Add association path for cycles -> printings + has_many :printings, :through => :card_sets + has_many :cards, :through => :printings end diff --git a/app/models/card_set.rb b/app/models/card_set.rb index 1af5da72..810da419 100644 --- a/app/models/card_set.rb +++ b/app/models/card_set.rb @@ -5,4 +5,5 @@ class CardSet < ApplicationRecord belongs_to :card_set_type has_many :printings + has_many :cards, :through => :printings end diff --git a/app/models/faction.rb b/app/models/faction.rb index de5a7912..5f63d3ff 100644 --- a/app/models/faction.rb +++ b/app/models/faction.rb @@ -3,4 +3,5 @@ class Faction < ApplicationRecord belongs_to :side has_many :cards + has_many :printings, :through => :cards end diff --git a/app/models/printing.rb b/app/models/printing.rb index 42756236..732b48a5 100644 --- a/app/models/printing.rb +++ b/app/models/printing.rb @@ -3,5 +3,7 @@ class Printing < ApplicationRecord belongs_to :card belongs_to :card_set - # TODO(plural): Add an association to cycle. + has_one :faction, :through => :card + has_one :card_cycle, :through => :card_set + has_one :side, :through => :card end diff --git a/app/models/side.rb b/app/models/side.rb index 936da615..49826024 100644 --- a/app/models/side.rb +++ b/app/models/side.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class Side < ApplicationRecord - has_many :cards has_many :factions + has_many :cards + has_many :printings, :through => :cards end diff --git a/app/resources/api/v3/public/card_cycle_resource.rb b/app/resources/api/v3/public/card_cycle_resource.rb index f5d09729..fd55a895 100644 --- a/app/resources/api/v3/public/card_cycle_resource.rb +++ b/app/resources/api/v3/public/card_cycle_resource.rb @@ -6,6 +6,9 @@ class Api::V3::Public::CardCycleResource < JSONAPI::Resource key_type :string has_many :card_sets + has_many :printings + has_many :cards + paginator :none end end diff --git a/app/resources/api/v3/public/card_resource.rb b/app/resources/api/v3/public/card_resource.rb index b02ff2e9..128c829f 100644 --- a/app/resources/api/v3/public/card_resource.rb +++ b/app/resources/api/v3/public/card_resource.rb @@ -5,9 +5,9 @@ class Api::V3::Public::CardResource < JSONAPI::Resource attributes :stripped_title, :title, :card_type_id, :side_id, :faction_id, :advancement_requirement, :agenda_points, :base_link, :cost, :deck_limit, :influence_cost, :influence_limit, :memory_cost, :minimum_deck_size, :strength, :stripped_text, :text, :trash_cost, :is_unique, :display_subtypes, :updated_at key_type :string - has_one :card_type - has_one :faction has_one :side + has_one :faction + has_one :card_type has_many :card_subtypes has_many :printings end diff --git a/app/resources/api/v3/public/card_set_resource.rb b/app/resources/api/v3/public/card_set_resource.rb index 87fda4e0..238e370b 100644 --- a/app/resources/api/v3/public/card_set_resource.rb +++ b/app/resources/api/v3/public/card_set_resource.rb @@ -2,14 +2,15 @@ module API module V3 module Public class Api::V3::Public::CardSetResource < JSONAPI::Resource - # TODO(plural): Add relationships in here. attributes :name, :date_release, :size, :card_cycle_id, :card_set_type_id, :updated_at key_type :string paginator :none has_one :card_cycle + has_one :card_set_type has_many :printings + has_many :cards end end end diff --git a/app/resources/api/v3/public/faction_resource.rb b/app/resources/api/v3/public/faction_resource.rb index d6955eb0..26fe5783 100644 --- a/app/resources/api/v3/public/faction_resource.rb +++ b/app/resources/api/v3/public/faction_resource.rb @@ -7,7 +7,9 @@ class Api::V3::Public::FactionResource < JSONAPI::Resource paginator :none + has_one :side has_many :cards + has_many :printings end end end diff --git a/app/resources/api/v3/public/printing_resource.rb b/app/resources/api/v3/public/printing_resource.rb index da29c636..c55aa0a3 100644 --- a/app/resources/api/v3/public/printing_resource.rb +++ b/app/resources/api/v3/public/printing_resource.rb @@ -2,11 +2,13 @@ module API module V3 module Public class Api::V3::Public::PrintingResource < JSONAPI::Resource - # TODO: add relationships in here. attributes :card_id, :card_set_id, :printed_text, :printed_is_unique, :flavor, :illustrator, :position, :quantity, :date_release, :updated_at key_type :string + has_one :card_cycle has_one :card_set + has_one :side + has_one :faction has_one :card end end diff --git a/app/resources/api/v3/public/side_resource.rb b/app/resources/api/v3/public/side_resource.rb index 632995e8..2f59c8d3 100644 --- a/app/resources/api/v3/public/side_resource.rb +++ b/app/resources/api/v3/public/side_resource.rb @@ -7,6 +7,8 @@ class Api::V3::Public::SideResource < JSONAPI::Resource paginator :none + has_many :factions + has_many :printings has_many :cards end end