@@ -43,22 +43,27 @@ def sendtest
43
43
end
44
44
45
45
def unsubscribe
46
- unless ( @user . is_subscribed )
47
- @message = 'You have already unsubscribed!!'
48
- else
46
+ if @user . present? && @user . sidekiq_status == 'Subscribed'
49
47
@user . update ( is_subscribed : 'false' ,
50
- unsubscribed_at : DateTime . now ,
51
- sidekiq_status : 'Unsubscribed' )
48
+ unsubscribed_at : DateTime . now ,
49
+ sidekiq_status : 'Unsubscribed' )
52
50
@message = 'Unsubscribed successfully!!'
51
+ else
52
+ @message = response_message ( 'unsubscribed' )
53
53
end
54
54
end
55
55
56
56
def subscribe
57
- @user . update ( is_subscribed : 'true' ,
58
- sidekiq_status : 'Subscribed' ,
59
- subscribed_at : DateTime . now ,
60
- remote_ip : request . remote_ip ,
61
- user_agent : request . env [ 'HTTP_USER_AGENT' ] )
57
+ if @user . present? && @user . sidekiq_status == 'Unsubscribed'
58
+ @user . update ( is_subscribed : 'true' ,
59
+ sidekiq_status : 'Subscribed' ,
60
+ subscribed_at : DateTime . now ,
61
+ remote_ip : request . remote_ip ,
62
+ user_agent : request . env [ 'HTTP_USER_AGENT' ] )
63
+ @message = 'Subscribed successfully!!'
64
+ else
65
+ @message = response_message ( 'subscribed' )
66
+ end
62
67
end
63
68
64
69
def sendmailer
@@ -140,5 +145,21 @@ def users_params
140
145
def user_with_token
141
146
@user = Light ::User . where ( token : params [ :token ] ) . first
142
147
end
148
+
149
+ def dummy_token?
150
+ params [ :token ] == 'test_user_dummy_id'
151
+ end
152
+
153
+ def response_message ( status )
154
+ if dummy_token?
155
+ "#{ status . capitalize } successfully!!"
156
+ elsif @user . nil?
157
+ "Hey, it seems request you are trying to access is invalid. If you have any " +
158
+ "concerns about our newsletter's subscription, kindly get in touch with " +
159
+ "<a href='mailto:[email protected] ' class='email'>[email protected] </a>"
160
+ else
161
+ "You have already #{ status } !!"
162
+ end
163
+ end
143
164
end
144
165
end
0 commit comments