51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
module Mastodon
 | 
						|
  module Entities
 | 
						|
    class Account < Grape::Entity
 | 
						|
      include ApplicationHelper
 | 
						|
 | 
						|
      expose :id
 | 
						|
      expose :username
 | 
						|
 | 
						|
      expose :domain do |account|
 | 
						|
        account.local? ? LOCAL_DOMAIN : account.domain
 | 
						|
      end
 | 
						|
 | 
						|
      expose :display_name
 | 
						|
      expose :note
 | 
						|
 | 
						|
      expose :url do |account|
 | 
						|
        account.local? ? profile_url(name: account.username) : account.url
 | 
						|
      end
 | 
						|
    end
 | 
						|
 | 
						|
    class Status < Grape::Entity
 | 
						|
      include ApplicationHelper
 | 
						|
 | 
						|
      format_with(:iso_timestamp) { |dt| dt.iso8601 }
 | 
						|
 | 
						|
      expose :id
 | 
						|
 | 
						|
      expose :uri do |status|
 | 
						|
        status.local? ? unique_tag(status.stream_entry.created_at, status.stream_entry.activity_id, status.stream_entry.activity_type) : status.uri
 | 
						|
      end
 | 
						|
 | 
						|
      expose :url do |status|
 | 
						|
        status.local? ? status_url(name: status.account.username, id: status.id) : status.url
 | 
						|
      end
 | 
						|
 | 
						|
      expose :text
 | 
						|
      expose :in_reply_to_id
 | 
						|
 | 
						|
      expose :reblog_of_id
 | 
						|
      expose :reblog, using: Mastodon::Entities::Status
 | 
						|
 | 
						|
      expose :account, using: Mastodon::Entities::Account
 | 
						|
 | 
						|
      with_options(format_with: :iso_timestamp) do
 | 
						|
        expose :created_at
 | 
						|
        expose :updated_at
 | 
						|
      end
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |