Class: Caboose::SubscriptionsController
Instance Method Summary
collapse
#add_ga_event, #admin_bulk_add, #admin_bulk_delete, #admin_bulk_update, #before_action, #before_before_action, #hashify_query_string, #init_cart, #logged_in?, #logged_in_user, #login_user, #logout_user, #parse_url_params, #reject_param, #under_construction_or_forwarding_domain?, #user_is_allowed, #user_is_allowed_to, #validate_cookie, #validate_token, #var, #verify_logged_in
Instance Method Details
#admin_add ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 66
def admin_add
return unless user_is_allowed('subscriptions', 'add')
resp = Caboose::StdClass.new
v = params[:variant_id] ? Variant.where(:id => params[:variant_id]).first : nil
if params[:variant_id].nil? || v.nil? || v.product.site_id != @site.id || !v.is_subscription
resp.error = "A valid subscription variant is required."
else
s = Subscription.create(
:variant_id => v.id,
:user_id => params[:user_id],
:date_started => Date.today,
:date_started_full => Date.today,
:status => UserSubcription::STATUS_ACTIVE
)
resp.redirect = "/admin/users/#{params[:user_id]}/subscriptions/#{s.id}"
resp.success = true
end
render :json => resp
end
|
#admin_create_invoices ⇒ Object
110
111
112
113
114
115
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 110
def admin_create_invoices
return if !user_is_allowed('subscriptions', 'edit')
s = Subscription.find(params[:id])
s.create_invoices
render :json => { :success => true }
end
|
#admin_delete ⇒ Object
118
119
120
121
122
123
124
125
126
127
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 118
def admin_delete
return unless user_is_allowed('subscriptions', 'delete')
model_ids = params[:id] == 'bulk' ? params[:model_ids] : [params[:id]]
model_ids.each do |model_id|
Subscription.where(:id => model_id).destroy_all
end
render :json => { :sucess => true }
end
|
#admin_edit ⇒ Object
51
52
53
54
55
56
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 51
def admin_edit
return if !user_is_allowed('subscriptions', 'edit')
@subscription = Subscription.find(params[:id])
@edituser = @subscription.user
render :layout => 'caboose/admin'
end
|
#admin_index ⇒ Object
10
11
12
13
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 10
def admin_index
return if !user_is_allowed('subscriptions', 'view')
render :layout => 'caboose/admin'
end
|
#admin_json ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 24
def admin_json
return if !user_is_allowed('subscriptions', 'view')
= PageBarGenerator.new(params, {
'site_id' => @site.id,
'variant_id' => '',
'user_id' => params[:user_id] ? params[:user_id] : '',
'date_started_gte' => '',
'date_started_lte' => '',
'date_started_full_gte' => '',
'date_started_full_lte' => '',
'status' => ''
},{
'model' => 'Caboose::Subscription',
'sort' => 'date_started',
'desc' => false,
'base_url' => params[:user_id] ? "/admin/users/#{params[:user_id]}/subscriptions" : '/admin/subscriptions',
'use_url_params' => false
})
render :json => {
:pager => ,
:models => .items.as_json(:include => [:user, { :variant => { :include => :product }}])
}
end
|
#admin_json_single ⇒ Object
59
60
61
62
63
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 59
def admin_json_single
return if !user_is_allowed('subscriptions', 'view')
s = Subscription.find(params[:id])
render :json => s
end
|
#admin_options ⇒ Object
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 132
def admin_options
if !user_is_allowed('subscriptions', 'edit')
render :json => false
return
end
options = []
case params[:field]
when 'variant'
arr = Variant.joins(:product).where("store_products.site_id = ? and is_subscription = ?", @site.id, true).reorder("store_products.title").all
options = arr.collect{ |v| { 'value' => v.id, 'text' => "#{v.product.title} - #{v.alternate_id}" }}
when 'status'
options = [
{ 'value' => Subscription::STATUS_ACTIVE , 'text' => 'Active' },
{ 'value' => Subscription::STATUS_INACTIVE , 'text' => 'Inactive' }
]
when 'user'
arr = User.where(:site_id => @site.id).reorder('last_name, first_name').all
options = arr.collect{ |u| { 'value' => u.id, 'text' => "#{u.first_name} #{u.last_name}" }}
end
render :json => options
end
|
#admin_update ⇒ Object
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 89
def admin_update
return unless user_is_allowed('subscriptions', 'edit')
resp = StdClass.new
models = params[:id] == 'bulk' ? params[:model_ids].collect{ |model_id| Subscription.find(model_id) } : [Subscription.find(params[:id])]
params.each do |k, v|
case k
when 'variant_id' then models.each{ |s| s.variant_id = v }
when 'user_id' then models.each{ |s| s.user_id = v }
when 'date_started' then models.each{ |s| s.date_started = v }
when 'date_started_full' then models.each{ |s| s.date_started_full = v }
when 'status' then models.each{ |s| s.status = v }
end
end
models.each{ |s| s.save }
resp.success = true
render :json => resp
end
|
#admin_user_index ⇒ Object
16
17
18
19
20
|
# File 'app/controllers/caboose/subscriptions_controller.rb', line 16
def admin_user_index
return if !user_is_allowed('subscriptions', 'view')
@edituser = User.find(params[:user_id])
render :layout => 'caboose/admin'
end
|