To be able to pull some basic statistics from a Mastodon instance, include the user, status and connected domain counters in the `/api/v1/instance` response. Fixes #3570. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
		
			
				
	
	
		
			45 lines
		
	
	
		
			793 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			793 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| class REST::InstanceSerializer < ActiveModel::Serializer
 | |
|   attributes :uri, :title, :description, :email,
 | |
|              :version, :urls, :stats
 | |
| 
 | |
|   def uri
 | |
|     Rails.configuration.x.local_domain
 | |
|   end
 | |
| 
 | |
|   def title
 | |
|     Setting.site_title
 | |
|   end
 | |
| 
 | |
|   def description
 | |
|     Setting.site_description
 | |
|   end
 | |
| 
 | |
|   def email
 | |
|     Setting.site_contact_email
 | |
|   end
 | |
| 
 | |
|   def version
 | |
|     Mastodon::Version.to_s
 | |
|   end
 | |
| 
 | |
|   def stats
 | |
|     {
 | |
|       user_count: instance_presenter.user_count,
 | |
|       status_count: instance_presenter.status_count,
 | |
|       domain_count: instance_presenter.domain_count,
 | |
|     }
 | |
|   end
 | |
| 
 | |
|   def urls
 | |
|     { streaming_api: Rails.configuration.x.streaming_api_base_url }
 | |
|   end
 | |
| 
 | |
|   private
 | |
| 
 | |
|   def instance_presenter
 | |
|     @instance_presenter ||= InstancePresenter.new
 | |
|   end
 | |
| end
 |