X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/11cd1c9fc1417f5e6b52991897b29bb94a4288a4..8ba1ea0f5d069fe8f2c96fff0804de4fd794bd1e:/app/controllers/api/user_preferences_controller.rb diff --git a/app/controllers/api/user_preferences_controller.rb b/app/controllers/api/user_preferences_controller.rb index 83e28bc4e..cb852ce88 100644 --- a/app/controllers/api/user_preferences_controller.rb +++ b/app/controllers/api/user_preferences_controller.rb @@ -1,18 +1,24 @@ -# Update and read user preferences, which are arbitrayr key/val pairs +# Update and read user preferences, which are arbitrary key/val pairs module Api class UserPreferencesController < ApiController + before_action :check_api_writable, :only => [:update_all, :update, :destroy] before_action :authorize authorize_resource around_action :api_call_handle_error + before_action :set_request_formats + ## - # return all the preferences as an XML document + # return all the preferences def index @user_preferences = current_user.preferences - render :formats => [:xml] + respond_to do |format| + format.xml + format.json + end end ## @@ -25,9 +31,7 @@ module Api # update the entire set of preferences def update_all - old_preferences = current_user.preferences.each_with_object({}) do |preference, preferences| - preferences[preference.k] = preference - end + old_preferences = current_user.preferences.index_by(&:k) new_preferences = {} @@ -63,7 +67,7 @@ module Api pref.k = params[:preference_key] end - pref.v = request.raw_post.chomp + pref.v = request.raw_post.chomp.force_encoding("UTF-8") pref.save! render :plain => ""