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
					
				
			
		
					 2 changed files with 30 additions and 2 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue