Enable updating additional account information from user preferences via rest api (#6789)
* Enable updating additional account information from user preferences via rest api Resolves #6553 * Pacify rubocop * Decoerce incoming settings in UserSettingsDecorator * Create user preferences hash directly from incoming credentials instead of going through ActionController::Parameters * Clean up user preferences update * Use ActiveModel::Type::Boolean instead of manually checking stringified number equivalence
This commit is contained in:
		
					parent
					
						
							
								1364e9e4ae
							
						
					
				
			
			
				commit
				
					
						cd0eaa349c
					
				
			
		
					 4 changed files with 31 additions and 2 deletions
				
			
		|  | @ -13,6 +13,7 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController | |||
|   def update | ||||
|     @account = current_account | ||||
|     UpdateAccountService.new.call(@account, account_params, raise_error: true) | ||||
|     UserSettingsDecorator.new(current_user).update(user_settings_params) if user_settings_params | ||||
|     ActivityPub::UpdateDistributionWorker.perform_async(@account.id) | ||||
|     render json: @account, serializer: REST::CredentialAccountSerializer | ||||
|   end | ||||
|  | @ -22,4 +23,15 @@ class Api::V1::Accounts::CredentialsController < Api::BaseController | |||
|   def account_params | ||||
|     params.permit(:display_name, :note, :avatar, :header, :locked) | ||||
|   end | ||||
| 
 | ||||
|   def user_settings_params | ||||
|     return nil unless params.key?(:source) | ||||
| 
 | ||||
|     source_params = params.require(:source) | ||||
| 
 | ||||
|     { | ||||
|       'setting_default_privacy' => source_params.fetch(:privacy, @account.user.setting_default_privacy), | ||||
|       'setting_default_sensitive' => source_params.fetch(:sensitive, @account.user.setting_default_sensitive), | ||||
|     } | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue