Add configuration attribute to GET /api/v1/instance (#16485)
				
					
				
			List various values like file size limits and supported mime types
This commit is contained in:
		
							parent
							
								
									3d5183e99c
								
							
						
					
					
						commit
						275fa4746b
					
				| @ -5,7 +5,8 @@ class REST::InstanceSerializer < ActiveModel::Serializer | ||||
| 
 | ||||
|   attributes :uri, :title, :short_description, :description, :email, | ||||
|              :version, :urls, :stats, :thumbnail, | ||||
|              :languages, :registrations, :approval_required, :invites_enabled | ||||
|              :languages, :registrations, :approval_required, :invites_enabled, | ||||
|              :configuration | ||||
| 
 | ||||
|   has_one :contact_account, serializer: REST::AccountSerializer | ||||
| 
 | ||||
| @ -53,6 +54,32 @@ class REST::InstanceSerializer < ActiveModel::Serializer | ||||
|     { streaming_api: Rails.configuration.x.streaming_api_base_url } | ||||
|   end | ||||
| 
 | ||||
|   def configuration | ||||
|     { | ||||
|       statuses: { | ||||
|         max_characters: StatusLengthValidator::MAX_CHARS, | ||||
|         max_media_attachments: 4, | ||||
|         characters_reserved_per_url: StatusLengthValidator::URL_PLACEHOLDER_CHARS, | ||||
|       }, | ||||
| 
 | ||||
|       media_attachments: { | ||||
|         supported_mime_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES + MediaAttachment::AUDIO_MIME_TYPES, | ||||
|         image_size_limit: MediaAttachment::IMAGE_LIMIT, | ||||
|         image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT, | ||||
|         video_size_limit: MediaAttachment::VIDEO_LIMIT, | ||||
|         video_frame_rate_limit: MediaAttachment::MAX_VIDEO_FRAME_RATE, | ||||
|         video_matrix_limit: MediaAttachment::MAX_VIDEO_MATRIX_LIMIT, | ||||
|       }, | ||||
| 
 | ||||
|       polls: { | ||||
|         max_options: PollValidator::MAX_OPTIONS, | ||||
|         max_characters_per_option: PollValidator::MAX_OPTION_CHARS, | ||||
|         min_expiration: PollValidator::MIN_EXPIRATION, | ||||
|         max_expiration: PollValidator::MAX_EXPIRATION, | ||||
|       }, | ||||
|     } | ||||
|   end | ||||
| 
 | ||||
|   def languages | ||||
|     [I18n.default_locale] | ||||
|   end | ||||
|  | ||||
| @ -2,7 +2,8 @@ | ||||
| 
 | ||||
| class StatusLengthValidator < ActiveModel::Validator | ||||
|   MAX_CHARS = 500 | ||||
|   URL_PLACEHOLDER = "\1#{'x' * 23}" | ||||
|   URL_PLACEHOLDER_CHARS = 23 | ||||
|   URL_PLACEHOLDER = "\1#{'x' * URL_PLACEHOLDER_CHARS}" | ||||
| 
 | ||||
|   def validate(status) | ||||
|     return unless status.local? && !status.reblog? | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user