From cfb3f8f15bf779c39a5c6b32520941572e25df9b Mon Sep 17 00:00:00 2001 From: Adrian Hinz Date: Sat, 6 Apr 2019 21:56:14 +0200 Subject: [PATCH] newsletter --- app/controllers/ps_admin/settings_controller.rb | 7 ++++++- app/jobs/send_newsletter_job.rb | 14 ++++++++++++++ app/models/email.rb | 4 ++++ config/routes.rb | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 app/jobs/send_newsletter_job.rb create mode 100644 app/models/email.rb diff --git a/app/controllers/ps_admin/settings_controller.rb b/app/controllers/ps_admin/settings_controller.rb index 8e6054c..9f1d687 100644 --- a/app/controllers/ps_admin/settings_controller.rb +++ b/app/controllers/ps_admin/settings_controller.rb @@ -34,11 +34,16 @@ module PsAdmin if params[:em] NewsletterMailer.news_mail(params[:em]).deliver else - NewsletterMailer.news_mail('adhinz@gmail.com').deliver + NewsletterMailer.news_mail('adhinz@gmail.com').deliver_later end render plain: 'OK' end + def add_email + SendNewsletterJob.perform_later + render plain: 'OK' + end + private def set_settings diff --git a/app/jobs/send_newsletter_job.rb b/app/jobs/send_newsletter_job.rb new file mode 100644 index 0000000..d75686e --- /dev/null +++ b/app/jobs/send_newsletter_job.rb @@ -0,0 +1,14 @@ +# setts all products to check or not their quantity +class SendNewsletterJob < ApplicationJob + queue_as :default + + def perform + emails = Email.all + emails.each do |em| + NewsletterMailer.news_mail(em.email).deliver + em.sended = true + em.save + sleep(2) + end + end +end diff --git a/app/models/email.rb b/app/models/email.rb new file mode 100644 index 0000000..b087370 --- /dev/null +++ b/app/models/email.rb @@ -0,0 +1,4 @@ +# Model stores Emails temporary model +class Email < ApplicationRecord + +end diff --git a/config/routes.rb b/config/routes.rb index d72206b..4d9900a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,6 +35,7 @@ Rails.application.routes.draw do post 'settings/xedit' post 'settings/home_page_update' get 'settings/send_email' + get 'settings/add_email' resources :settings resources :admins get 'order/anonimize'