diff options
author | David Yip <yipdw@member.fsf.org> | 2018-04-13 16:36:46 -0500 |
---|---|---|
committer | David Yip <yipdw@member.fsf.org> | 2018-04-13 16:36:46 -0500 |
commit | ed490b781f9347b77eb2305e33ba6dd83f3539b0 (patch) | |
tree | 4f958ce8da072e35ef654cf5ae0a152f613f3ad8 /app/controllers/api | |
parent | a817f084eafaf5527445c29ab1d68f42b1a2872f (diff) | |
parent | 50529cbceb84e611bca497624a7a4c38113e5135 (diff) |
Merge remote-tracking branch 'origin/master' into gs-master
Conflicts: Gemfile.lock config/application.rb
Diffstat (limited to 'app/controllers/api')
-rw-r--r-- | app/controllers/api/web/push_subscriptions_controller.rb | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/app/controllers/api/web/push_subscriptions_controller.rb b/app/controllers/api/web/push_subscriptions_controller.rb index 68ccbd5e2..c611031ab 100644 --- a/app/controllers/api/web/push_subscriptions_controller.rb +++ b/app/controllers/api/web/push_subscriptions_controller.rb @@ -7,9 +7,6 @@ class Api::Web::PushSubscriptionsController < Api::BaseController protect_from_forgery with: :exception def create - params.require(:subscription).require(:endpoint) - params.require(:subscription).require(:keys).require([:auth, :p256dh]) - active_session = current_session unless active_session.web_push_subscription.nil? @@ -29,12 +26,12 @@ class Api::Web::PushSubscriptionsController < Api::BaseController }, } - data.deep_merge!(params[:data]) if params[:data] + data.deep_merge!(data_params) if params[:data] web_subscription = ::Web::PushSubscription.create!( - endpoint: params[:subscription][:endpoint], - key_p256dh: params[:subscription][:keys][:p256dh], - key_auth: params[:subscription][:keys][:auth], + endpoint: subscription_params[:endpoint], + key_p256dh: subscription_params[:keys][:p256dh], + key_auth: subscription_params[:keys][:auth], data: data ) @@ -44,12 +41,22 @@ class Api::Web::PushSubscriptionsController < Api::BaseController end def update - params.require([:id, :data]) + params.require([:id]) web_subscription = ::Web::PushSubscription.find(params[:id]) - web_subscription.update!(data: params[:data]) + web_subscription.update!(data: data_params) render json: web_subscription.as_payload end + + private + + def subscription_params + @subscription_params ||= params.require(:subscription).permit(:endpoint, keys: [:auth, :p256dh]) + end + + def data_params + @data_params ||= params.require(:data).permit(:alerts) + end end |