34 lines
		
	
	
		
			599 B
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			599 B
		
	
	
	
		
			Ruby
		
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
class AnnualReport::Source
 | 
						|
  attr_reader :account, :year
 | 
						|
 | 
						|
  def initialize(account, year)
 | 
						|
    @account = account
 | 
						|
    @year = year
 | 
						|
  end
 | 
						|
 | 
						|
  protected
 | 
						|
 | 
						|
  def report_statuses
 | 
						|
    @account
 | 
						|
      .statuses
 | 
						|
      .where(id: year_as_snowflake_range)
 | 
						|
      .reorder(nil)
 | 
						|
  end
 | 
						|
 | 
						|
  def year_as_snowflake_range
 | 
						|
    (beginning_snowflake_id..ending_snowflake_id)
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def beginning_snowflake_id
 | 
						|
    Mastodon::Snowflake.id_at DateTime.new(year).beginning_of_year
 | 
						|
  end
 | 
						|
 | 
						|
  def ending_snowflake_id
 | 
						|
    Mastodon::Snowflake.id_at DateTime.new(year).end_of_year
 | 
						|
  end
 | 
						|
end
 |