| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class ActivityPub::ActivitySerializer < ActiveModel::Serializer | 
					
						
							| 
									
										
										
										
											2017-09-19 03:30:11 +09:00
										 |  |  |   attributes :id, :type, :actor, :published, :to, :cc | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-08 14:41:59 +02:00
										 |  |  |   has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer, unless: :announce? | 
					
						
							|  |  |  |   attribute :proper_uri, key: :object, if: :announce? | 
					
						
							| 
									
										
										
										
											2017-10-14 21:42:09 +09:00
										 |  |  |   attribute :atom_uri, if: :announce? | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def id | 
					
						
							| 
									
										
										
										
											2017-10-08 14:41:59 +02:00
										 |  |  |     ActivityPub::TagManager.instance.activity_uri_for(object) | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def type | 
					
						
							| 
									
										
										
										
											2017-08-26 19:55:10 +02:00
										 |  |  |     announce? ? 'Announce' : 'Create' | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def actor | 
					
						
							|  |  |  |     ActivityPub::TagManager.instance.uri_for(object.account) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-19 03:30:11 +09:00
										 |  |  |   def published | 
					
						
							|  |  |  |     object.created_at.iso8601 | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  |   def to | 
					
						
							|  |  |  |     ActivityPub::TagManager.instance.to(object) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def cc | 
					
						
							|  |  |  |     ActivityPub::TagManager.instance.cc(object) | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-08-26 19:55:10 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-08 14:41:59 +02:00
										 |  |  |   def proper_uri | 
					
						
							|  |  |  |     ActivityPub::TagManager.instance.uri_for(object.proper) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 21:42:09 +09:00
										 |  |  |   def atom_uri | 
					
						
							|  |  |  |     OStatus::TagManager.instance.uri_for(object) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-26 19:55:10 +02:00
										 |  |  |   def announce? | 
					
						
							|  |  |  |     object.reblog? | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2017-07-15 03:01:39 +02:00
										 |  |  | end |