YutaGoto/salmon_run

View on GitHub
app/graphql/types/query_type.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Types
  class QueryType < Types::BaseObject
    field :events, [EventType], null: true do
      description 'get events'
      argument :weaponName, String, required: false
      argument :stageId, Integer, required: false
    end

    field :opening, EventType, null: true do
      description 'get opening events'
    end

    field :stages, [StageType], null: true do
      description 'get opening events'
    end

    def events(weapon_name: nil, stage_id: nil)
      event_search(weapon_name, stage_id)
    end

    def opening
      Event.opening.last
    end

    def stages
      Stage.all
    end

    private

    def event_search(weapon_name, stage_id)
      weapon = Weapon.weapon_search(weapon_name).first
      Event.by_weapon(weapon).by_stage_id(stage_id).includes(:stage, events_weapons: [:weapon])
    end
  end
end