Class: Admin::MailchimpController

Inherits:
ApplicationController
  • Object
show all
Includes:
Effective::CrudController
Defined in:
app/controllers/admin/mailchimp_controller.rb

Instance Method Summary collapse

Instance Method Details

#indexObject

/admin/mailchimp



11
12
# File 'app/controllers/admin/mailchimp_controller.rb', line 11

def index
end

#mailchimp_syncObject

Sync All



15
16
17
18
19
20
21
22
23
24
25
26
# File 'app/controllers/admin/mailchimp_controller.rb', line 15

def mailchimp_sync
  EffectiveResources.authorize!(self, :admin, :mailchimp_sync)

  api = EffectiveMailchimp.api
  Effective::MailchimpList.sync!(api: api)
  Effective::MailchimpCategory.sync!(api: api)
  Effective::MailchimpInterest.sync!(api: api)

  flash[:success] = "Successfully synced mailchimp data"

  redirect_back(fallback_location: effective_mailchimp.admin_mailchimp_path)
end

#mailchimp_sync_userObject

Sync one user



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'app/controllers/admin/mailchimp_controller.rb', line 43

def mailchimp_sync_user
  resource = current_user.class.find(params[:id])

  EffectiveResources.authorize!(self, :update, resource)

  api = EffectiveMailchimp.api
  resource.mailchimp_sync!
  resource.mailchimp_update!

  flash[:success] = "Successfully synced mailchimp"

  redirect_back(fallback_location: "/admin/users/#{params[:id]}/edit")
end

#mailchimp_sync_usersObject

Sync all users



29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/admin/mailchimp_controller.rb', line 29

def mailchimp_sync_users
  EffectiveResources.authorize!(self, :admin, :mailchimp_sync_users)

  user_class_name = current_user.class.name

  # This calls user.mailchimp_sync! on all users
  EffectiveMailchimpSyncUsersJob.perform_later(user_class_name) 

  flash[:success] = "Successfully started mailchimp sync all users background job. Please wait a few minutes for it to complete. Check the logs for progress."

  redirect_back(fallback_location: effective_mailchimp.admin_mailchimp_path)
end