georgia_mailer 0.1.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +3 -11
  4. data/app/assets/javascripts/georgia_mailer/components/message_table.js.coffee +32 -26
  5. data/app/assets/stylesheets/georgia_mailer/application.css.scss +1 -0
  6. data/app/assets/stylesheets/georgia_mailer/components/_button.scss +4 -0
  7. data/app/assets/stylesheets/georgia_mailer/{modules → components}/_message.scss +4 -7
  8. data/app/assets/stylesheets/georgia_mailer/modules/_categories.scss +17 -0
  9. data/app/assets/stylesheets/georgia_mailer/modules/_messages.scss +7 -0
  10. data/app/controllers/georgia/mailer/messages_controller.rb +38 -0
  11. data/app/controllers/georgia/messages_controller.rb +71 -36
  12. data/app/decorators/georgia/mailer/message_decorator.rb +23 -0
  13. data/app/helpers/georgia/messages_helper.rb +1 -1
  14. data/app/mailers/georgia/mailer/notifier.rb +20 -0
  15. data/app/models/georgia/mailer/message.rb +54 -0
  16. data/app/policies/georgia/mailer/mailer_policy.rb +52 -0
  17. data/app/presenters/georgia/mailer/message_actions_presenter.rb +42 -0
  18. data/app/searches/georgia/mailer/message_search.rb +7 -0
  19. data/app/services/georgia/mailer/spam_check.rb +19 -0
  20. data/app/views/georgia/header/_messages.html.erb +1 -1
  21. data/app/views/georgia/{georgia_mailer → mailer}/messages/_message.html.erb +2 -0
  22. data/app/views/{georgia_mailer → georgia/mailer}/messages/create.js.erb +0 -0
  23. data/app/views/{georgia_mailer → georgia/mailer}/notifier/new_message_notification.html.erb +10 -3
  24. data/app/views/georgia/messages/destroy.js.erb +4 -0
  25. data/app/views/georgia/messages/ham.js.erb +7 -0
  26. data/app/views/georgia/messages/search.html.erb +55 -37
  27. data/app/views/georgia/messages/show.html.erb +8 -8
  28. data/app/views/georgia/messages/spam.js.erb +7 -0
  29. data/app/views/public_activity/georgia_mailer_message/_create.html.erb +17 -0
  30. data/app/workers/georgia/mailer/destroy_all_spam_worker.rb +18 -0
  31. data/app/workers/georgia/mailer/email_delivery_worker.rb +21 -0
  32. data/app/workers/georgia/mailer/spam_worker.rb +20 -0
  33. data/config/routes.rb +3 -3
  34. data/lib/generators/georgia/mailer/install/install_generator.rb +24 -0
  35. data/lib/georgia/mailer/engine.rb +12 -0
  36. data/lib/georgia/mailer/version.rb +5 -0
  37. data/lib/georgia_mailer.rb +20 -7
  38. data/lib/tasks/georgia_mailer_tasks.rake +17 -17
  39. metadata +54 -47
  40. data/app/controllers/georgia_mailer/messages_controller.rb +0 -35
  41. data/app/decorators/georgia_mailer/message_decorator.rb +0 -21
  42. data/app/mailers/georgia_mailer/notifier.rb +0 -18
  43. data/app/models/georgia_mailer/message.rb +0 -32
  44. data/app/presenters/georgia_mailer/message_actions_presenter.rb +0 -53
  45. data/app/services/georgia_mailer/spam_check.rb +0 -17
  46. data/app/workers/georgia_mailer/email_delivery_worker.rb +0 -19
  47. data/app/workers/georgia_mailer/spam_worker.rb +0 -18
  48. data/lib/generators/georgia_mailer/install/install_generator.rb +0 -23
  49. data/lib/georgia/indexer/extensions/solr_adapter/georgia_mailer/message.rb +0 -44
  50. data/lib/georgia/indexer/extensions/tire_adapter/georgia_mailer/message.rb +0 -46
  51. data/lib/georgia_mailer/engine.rb +0 -10
  52. data/lib/georgia_mailer/version.rb +0 -3
@@ -1,18 +0,0 @@
1
- module GeorgiaMailer
2
- class SpamWorker
3
- include SuckerPunch::Job
4
-
5
- def perform(message_id)
6
- ActiveRecord::Base.connection_pool.with_connection do
7
- begin
8
- message = Message.find(message_id)
9
- is_spam = SpamCheck.new(message).call
10
- message.update_attributes(spam: is_spam, verified_at: Time.zone.now)
11
- rescue ActiveRecord::RecordNotFound
12
- Rails.logger.info "Message with ID #{message_id} was destroy before it could be processed"
13
- end
14
- end
15
- end
16
-
17
- end
18
- end
@@ -1,23 +0,0 @@
1
- module GeorgiaMailer
2
- module Generators
3
- class InstallGenerator < ::Rails::Generators::Base
4
-
5
- def mount_engine
6
- route "mount GeorgiaMailer::Engine => '/mailer'"
7
- end
8
-
9
- def run_migrations
10
- rake "railties:install:migrations"
11
- rake "db:migrate"
12
- end
13
-
14
- def create_indices
15
- if defined? Tire
16
- say("Creating elasticsearch indices", :yellow)
17
- rake "environment tire:import CLASS=GeorgiaMailer::Message FORCE=true"
18
- end
19
- end
20
-
21
- end
22
- end
23
- end
@@ -1,44 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Georgia
4
- module Indexer
5
- module SolrAdapter
6
- module GeorgiaMailerMessageExtension
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
-
11
- searchable do
12
- text :name
13
- text :email
14
- text :message
15
- text :subject
16
- text :phone
17
- string :spam do
18
- status
19
- end
20
- string :name
21
- string :email
22
- string :phone
23
- string :subject
24
- string :message
25
- time :created_at
26
- end
27
-
28
- def self.search_index model, params
29
- search do
30
- fulltext params[:query] do
31
- fields(:name, :email, :message, :subject, :phone)
32
- end
33
- facet :spam
34
- with(:spam, (params[:s] || 'clean'))
35
- order_by (params[:o] || :created_at), (params[:dir] || :desc)
36
- paginate(page: params[:page], per_page: (params[:per] || 25))
37
- end
38
- end
39
-
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,46 +0,0 @@
1
- require 'active_support/concern'
2
-
3
- module Georgia
4
- module Indexer
5
- module TireAdapter
6
- module GeorgiaMailerMessageExtension
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
-
11
- include ::Tire::Model::Search
12
- include ::Tire::Model::Callbacks
13
-
14
- def to_indexed_json
15
- {
16
- name: name,
17
- email: email,
18
- message: message,
19
- subject: subject,
20
- phone: phone,
21
- status: status,
22
- created_at: created_at.strftime('%F')
23
- }.to_json
24
- end
25
-
26
- def self.search_index params
27
- page = params.fetch(:page, 1)
28
- per_page = params.fetch(:per, 25)
29
-
30
- search(page: page, per_page: per_page) do
31
- if params[:query].present?
32
- query do
33
- boolean do
34
- must { string params[:query], default_operator: "AND" }
35
- end
36
- end
37
- end
38
- sort { by (params[:o] || :created_at), (params[:dir] || :desc) } if params[:query].blank?
39
- end
40
- end
41
-
42
- end
43
- end
44
- end
45
- end
46
- end
@@ -1,10 +0,0 @@
1
- module GeorgiaMailer
2
- class Engine < ::Rails::Engine
3
- isolate_namespace GeorgiaMailer
4
-
5
- require 'georgia'
6
- require 'rakismet'
7
- require 'sucker_punch'
8
-
9
- end
10
- end
@@ -1,3 +0,0 @@
1
- module GeorgiaMailer
2
- VERSION = "0.1.3"
3
- end