mirror of https://github.com/mastodon/mastodon
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			53 lines
		
	
	
		
			928 B
		
	
	
	
		
			Ruby
		
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			928 B
		
	
	
	
		
			Ruby
		
	
| 
								 
											6 years ago
										 
									 | 
							
								# frozen_string_literal: true
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class ActivityPub::DeviceSerializer < ActivityPub::Serializer
							 | 
						||
| 
								 | 
							
								  context_extensions :olm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  include RoutingHelper
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  class FingerprintKeySerializer < ActivityPub::Serializer
							 | 
						||
| 
								 | 
							
								    attributes :type, :public_key_base64
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def type
							 | 
						||
| 
								 | 
							
								      'Ed25519Key'
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def public_key_base64
							 | 
						||
| 
								 | 
							
								      object.fingerprint_key
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  class IdentityKeySerializer < ActivityPub::Serializer
							 | 
						||
| 
								 | 
							
								    attributes :type, :public_key_base64
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def type
							 | 
						||
| 
								 | 
							
								      'Curve25519Key'
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def public_key_base64
							 | 
						||
| 
								 | 
							
								      object.identity_key
							 | 
						||
| 
								 | 
							
								    end
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  attributes :device_id, :type, :name, :claim
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  has_one :fingerprint_key, serializer: FingerprintKeySerializer
							 | 
						||
| 
								 | 
							
								  has_one :identity_key, serializer: IdentityKeySerializer
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def type
							 | 
						||
| 
								 | 
							
								    'Device'
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def claim
							 | 
						||
| 
								 | 
							
								    account_claim_url(object.account, id: object.device_id)
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def fingerprint_key
							 | 
						||
| 
								 | 
							
								    object
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def identity_key
							 | 
						||
| 
								 | 
							
								    object
							 | 
						||
| 
								 | 
							
								  end
							 | 
						||
| 
								 | 
							
								end
							 |