Merge pull request #603 from evanminto/activitypub-account
Expose ActivityStreams 2.0 representation of accounts
This commit is contained in:
		
						commit
						9d5fb49cd8
					
				@ -18,6 +18,8 @@ class AccountsController < ApplicationController
 | 
				
			|||||||
      format.atom do
 | 
					      format.atom do
 | 
				
			||||||
        @entries = @account.stream_entries.order('id desc').where(hidden: false).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
 | 
					        @entries = @account.stream_entries.order('id desc').where(hidden: false).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      format.activitystreams2
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								app/views/accounts/show.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								app/views/accounts/show.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					extends 'activitypub/types/person.activitystreams2.rabl'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					object @account
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					attributes display_name: :name, username: :preferredUsername, note: :summary
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					node(:icon)   { |account| full_asset_url(account.avatar.url(:original)) }
 | 
				
			||||||
 | 
					node(:image)  { |account| full_asset_url(account.header.url(:original)) }
 | 
				
			||||||
							
								
								
									
										1
									
								
								app/views/activitypub/base.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								app/views/activitypub/base.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					node(:'@context') { 'https://www.w3.org/ns/activitystreams' }
 | 
				
			||||||
							
								
								
									
										3
									
								
								app/views/activitypub/intransient.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								app/views/activitypub/intransient.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					extends 'activitypub/base.activitystreams2.rabl'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					node(:id) { request.original_url }
 | 
				
			||||||
							
								
								
									
										3
									
								
								app/views/activitypub/types/person.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								app/views/activitypub/types/person.activitystreams2.rabl
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					extends 'activitypub/intransient.activitystreams2.rabl'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					node(:type) { 'Person' }
 | 
				
			||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
# Be sure to restart your server when you modify this file.
 | 
					# Be sure to restart your server when you modify this file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/jrd+json )
 | 
					Mime::Type.register "application/json",           :json, %w( text/x-json application/jsonrequest application/jrd+json )
 | 
				
			||||||
Mime::Type.register "text/xml",         :xml,  %w( application/xml application/atom+xml application/xrd+xml )
 | 
					Mime::Type.register "text/xml",                   :xml,  %w( application/xml application/atom+xml application/xrd+xml )
 | 
				
			||||||
 | 
					Mime::Type.register "application/activity+json",  :activitystreams2
 | 
				
			||||||
 | 
				
			|||||||
@ -24,6 +24,16 @@ RSpec.describe AccountsController, type: :controller do
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    context 'activitystreams2' do
 | 
				
			||||||
 | 
					      before do
 | 
				
			||||||
 | 
					        get :show, params: { username: alice.username }, format: 'activitystreams2'
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it 'returns http success with Activity Streams 2.0' do
 | 
				
			||||||
 | 
					        expect(response).to have_http_status(:success)
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    context 'html' do
 | 
					    context 'html' do
 | 
				
			||||||
      before do
 | 
					      before do
 | 
				
			||||||
        get :show, params: { username: alice.username }
 | 
					        get :show, params: { username: alice.username }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user