thedrummeraki/tanoshimu

View on GitHub
app/models/graphql_user.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

class GraphqlUser < ApplicationRecord
  has_many :queues, -> {
    includes(shows_queue_relations: {
      show: [:description_record, :ratings],
    })
  }, class_name: 'Shows::Queue', inverse_of: :graphql_user
  has_many :issues, inverse_of: :graphql_user

  def add_show_to_main_queue(show)
    return unless show.present?
    return true if main_queue.include?(show)

    (main_queue << show).valid?
  end

  def remove_show_from_main_queue(show)
    return unless show.present?

    (main_queue - show)&.destroyed?
  end

  def has_show_in_main_queue?(show)
    show.present? && main_queue.include?(show)
  end

  def main_queue
    @main_queue ||= queues.empty? ? queues.create! : queues.first
  end
end