use subscription service for canceling subscriptions

This commit is contained in:
Andrew Brown 2018-10-31 13:41:56 -05:00
parent 61ab016bfb
commit 02ac1ff696
3 changed files with 7 additions and 3 deletions

View File

@ -1,6 +1,6 @@
class AdminController < ApplicationController
layout 'admin'
layout 'application', only: [:unsubscribe]
layout 'application', only: [:unsubscribe, :perform_unsubscribe]
before_action :authenticate_user!
before_action :require_admin_access
@ -45,7 +45,9 @@ class AdminController < ApplicationController
emails = params[:emails].split(/[\r|\n]+/)
@users = User.where(email: emails)
@users.update_all(selected_billing_plan_id: 1)
Subscription.where(user_id: @users.pluck(:id)).where('end_date > ?', DateTime.current).update_all(end_date: DateTime.current)
@users.each do |user|
SubscriptionService.cancel_all_existing_subscriptions(user)
end
end
private

View File

@ -27,3 +27,5 @@
</div>
</div>
<%= link_to 'Unsubscribe more users', mass_unsubscribe_path, class: 'btn white black-text' %>

View File

@ -168,7 +168,7 @@ Rails.application.routes.draw do
get '/content_type/:type', to: 'admin#content_type', as: :admin_content_type
get '/attributes', to: 'admin#attributes', as: :admin_attributes
get '/masquerade/:user_id', to: 'admin#masquerade', as: :masquerade
get '/unsubscribe', to: 'admin#unsubscribe'
get '/unsubscribe', to: 'admin#unsubscribe', as: :mass_unsubscribe
post '/perform_unsubscribe', to: 'admin#perform_unsubscribe', as: :perform_unsubscribe
end
mount RailsAdmin::Engine => '/admin', as: 'rails_admin'