Class: ActivityNotification::SubscriptionsController

Inherits:
Object
  • Object
show all
Includes:
CommonController
Defined in:
app/controllers/activity_notification/subscriptions_controller.rb

Overview

Controller to manage subscriptions.

Direct Known Subclasses

SubscriptionsWithDeviseController

Constant Summary

Constants included from CommonController

CommonController::DEFAULT_VIEW_DIRECTORY

Instance Method Summary collapse

Methods included from StoreController

#store_controller_for_activity_notification

Instance Method Details

#create(params) ⇒ Responce

Creates a subscription.

POST /:target_type/:target_id/subscriptions

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :subscription (String)

    Subscription parameters

  • :subscription[:key] (String)

    Key of the subscription

  • :subscription[:subscribing] (String) — default: nil

    If the target will subscribe to the notification

  • :subscription[:subscribing_to_email] (String) — default: nil

    If the target will subscribe to the notification email

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



43
44
45
46
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 43

def create
  @target.create_subscription(subscription_params)
  return_back_or_ajax
end

#destroy(params) ⇒ Responce

Deletes a subscription.

DELETE /:target_type/:target_id/subscriptions/:id

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



69
70
71
72
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 69

def destroy
  @subscription.destroy
  return_back_or_ajax
end

#index(params) ⇒ Responce

Shows subscription index of the target.

GET /:target_type/:target_id/subscriptions

Returns HTML view as default or JSON of subscription index with json format parameter.

Parameters:

  • params (Hash)

    Request parameter options for subscription index

Options Hash (params):

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    HTML view as default or JSON of subscription index with json format parameter



19
20
21
22
23
24
25
26
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 19

def index
  set_index_options
  load_index if params[:reload].to_s.to_boolean(true)
  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: { subscriptions: @subscriptions, unconfigured_notification_keys: @notification_keys } }
  end
end

#show(params) ⇒ Responce

Shows a subscription.

GET /:target_type/:target_id/subscriptions/:id

Returns HTML view as default.

Parameters:

  • params (Hash)

    Request parameters

Returns:

  • (Responce)

    HTML view as default



54
55
56
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 54

def show
  set_index_options
end

#open(params) ⇒ Responce

Subscribes to the notification.

POST /:target_type/:target_id/subscriptions/:id/subscribe

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :with_email_subscription (String) — default: 'true'

    If the subscriber also subscribes notification email

  • :with_optional_targets (String) — default: 'true'

    If the subscriber also subscribes optional targets

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



86
87
88
89
90
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 86

def subscribe
  @subscription.subscribe(with_email_subscription: params[:with_email_subscription].to_s.to_boolean(true),
                          with_optional_targets:   params[:with_optional_targets].to_s.to_boolean(true))
  return_back_or_ajax
end

#open(params) ⇒ Responce

Subscribes to the notification email.

POST /:target_type/:target_id/subscriptions/:id/subscribe_email

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



117
118
119
120
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 117

def subscribe_to_email
  @subscription.subscribe_to_email
  return_back_or_ajax
end

#open(params) ⇒ Responce

Subscribes to the specified optional target.

POST /:target_type/:target_id/subscriptions/:id/subscribe_to_optional_target

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :optional_target_name (required, String) — default: nil

    Class name of the optional target implementation (e.g. ‘amazon_sns’, ‘slack’)

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



148
149
150
151
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 148

def subscribe_to_optional_target
  @subscription.subscribe_to_optional_target(params[:optional_target_name])
  return_back_or_ajax
end

#open(params) ⇒ Responce

Unsubscribes to the notification.

POST /:target_type/:target_id/subscriptions/:id/unsubscribe

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



102
103
104
105
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 102

def unsubscribe
  @subscription.unsubscribe
  return_back_or_ajax
end

#open(params) ⇒ Responce

Unsubscribes to the notification email.

POST /:target_type/:target_id/subscriptions/:id/unsubscribe_email

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



132
133
134
135
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 132

def unsubscribe_to_email
  @subscription.unsubscribe_to_email
  return_back_or_ajax
end

#open(params) ⇒ Responce

Unsubscribes to the specified optional target.

POST /:target_type/:target_id/subscriptions/:id/unsubscribe_to_optional_target

Returns JavaScript view for ajax request or redirects to back as default.

Parameters:

  • params (Hash)

    Request parameters

Options Hash (params):

  • :optional_target_name (required, String) — default: nil

    Class name of the optional target implementation (e.g. ‘amazon_sns’, ‘slack’)

  • :filter (String) — default: nil

    Filter option to load subscription index (Nothing as all, ‘configured’ or ‘unconfigured’)

  • :limit (String) — default: nil

    Limit to query for subscriptions

  • :reverse (String) — default: 'false'

    If subscription index and unconfigured notification keys will be ordered as earliest first

  • :filtered_by_key (String) — default: nil

    Key of the subscription for filter

Returns:

  • (Responce)

    JavaScript view for ajax request or redirects to back as default



164
165
166
167
# File 'app/controllers/activity_notification/subscriptions_controller.rb', line 164

def unsubscribe_to_optional_target
  @subscription.unsubscribe_to_optional_target(params[:optional_target_name])
  return_back_or_ajax
end