pg_rails 7.0.8.pre.alpha.86 → 7.0.8.pre.alpha.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/pg_engine/app/controllers/admin/emails_controller.rb +21 -0
- data/pg_engine/app/mailers/pg_engine/admin_mailer.rb +9 -0
- data/pg_engine/app/views/admin/emails/_send.html.slim +14 -0
- data/pg_engine/app/views/pg_engine/admin_mailer/admin_mail.html.slim +1 -0
- data/pg_engine/config/initializers/cable_ready.rb +1 -1
- data/pg_engine/lib/pg_engine.rb +6 -0
- data/pg_engine/spec/controllers/admin/emails_controller_spec.rb +0 -34
- data/pg_engine/spec/controllers/pg_engine/base_controller_spec.rb +1 -1
- data/pg_engine/spec/controllers/public/webhooks_controller_spec.rb +6 -6
- data/pg_engine/spec/system/send_mail_spec.rb +34 -0
- data/pg_layout/app/views/layouts/pg_layout/base.html.slim +1 -2
- data/pg_rails/lib/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c900ac5b6158852a5a907b1f7f66885a23ac9257490bb927471d001df36b9bd
|
4
|
+
data.tar.gz: eead4343c6e37e043067b355f57a4b9dc9e1baf65a78ec40f231efbe2171e73e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1791df3ff62596290d1def2c00916bd24bc9248f3eaa3a7fee799b79e1f6c730d8363b87fdaead496b65b6ff1c7faaabc715edb8691cd8c70e0e1fe2c2af42ac
|
7
|
+
data.tar.gz: bbd8f3bb0974366926cd19964aad87b61668877e8a5c6a8c8250e6229d00eaf5dec803f25a62489461b13080c3a5bec41bb7ecde735eeb8ec884882dbcc373fb
|
@@ -14,6 +14,27 @@ module Admin
|
|
14
14
|
|
15
15
|
add_breadcrumb Email.nombre_plural, :admin_emails_path
|
16
16
|
|
17
|
+
def new
|
18
|
+
render template: 'admin/emails/_send', locals: { email: @email },
|
19
|
+
layout: 'pg_layout/containerized'
|
20
|
+
end
|
21
|
+
|
22
|
+
def create
|
23
|
+
saved = false
|
24
|
+
ActiveRecord::Base.transaction do
|
25
|
+
if (saved = @email.save)
|
26
|
+
PgEngine::AdminMailer.with(email_object: @email).admin_mail.deliver_later
|
27
|
+
end
|
28
|
+
end
|
29
|
+
if saved
|
30
|
+
redirect_to @email.decorate.target_object
|
31
|
+
else
|
32
|
+
render template: 'admin/emails/_send',
|
33
|
+
layout: 'pg_layout/containerized', status: :unprocessable_entity,
|
34
|
+
locals: { email: @email }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
17
38
|
private
|
18
39
|
|
19
40
|
def atributos_permitidos
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/ # locals: (email:)
|
2
|
+
|
3
|
+
= pg_form_for email do |f|
|
4
|
+
= f.mensajes_de_error
|
5
|
+
= f.input :from_name
|
6
|
+
= f.input :from_address
|
7
|
+
= f.input :to
|
8
|
+
= f.input :subject
|
9
|
+
= f.input :reply_to
|
10
|
+
= f.input :body_input, as: :text, input_html: { rows: 5 }
|
11
|
+
|
12
|
+
= button_tag class: 'btn btn-primary', type: :submit do
|
13
|
+
span.bi.bi-send
|
14
|
+
| Enviar
|
@@ -0,0 +1 @@
|
|
1
|
+
pre style="font-family:sans-serif" = @email_object.body_input
|
@@ -23,5 +23,5 @@ CableReady.configure do |config|
|
|
23
23
|
# Doing so is a best practice to avoid heavy ActionCable traffic
|
24
24
|
#
|
25
25
|
# config.updatable_debounce_time = 0.1.seconds
|
26
|
-
config.verifier_key =
|
26
|
+
# config.verifier_key = Rails.application.credentials.dig(:anycable, :cable_ready_secret)
|
27
27
|
end
|
data/pg_engine/lib/pg_engine.rb
CHANGED
@@ -96,4 +96,10 @@ module PgEngine
|
|
96
96
|
db = (env_value.nil? ? 1 : (env_value.presence || 1)).to_i - 1
|
97
97
|
"redis://127.0.0.1:6379/#{db}"
|
98
98
|
end
|
99
|
+
|
100
|
+
GOOGLE_FONTS_URL =
|
101
|
+
<<~URL.chomp
|
102
|
+
https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;\
|
103
|
+
0,500;0,700;1,300;1,400;1,500;1,700&display=swap
|
104
|
+
URL
|
99
105
|
end
|
@@ -97,13 +97,6 @@ RSpec.describe Admin::EmailsController do
|
|
97
97
|
end
|
98
98
|
end
|
99
99
|
|
100
|
-
describe 'GET #new' do
|
101
|
-
it 'returns a success response' do
|
102
|
-
get :new, params: {}
|
103
|
-
expect(response).to be_successful
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
100
|
describe 'GET #edit' do
|
108
101
|
it 'returns a success response' do
|
109
102
|
email = create(:email)
|
@@ -112,33 +105,6 @@ RSpec.describe Admin::EmailsController do
|
|
112
105
|
end
|
113
106
|
end
|
114
107
|
|
115
|
-
describe 'POST #create' do
|
116
|
-
context 'with valid params' do
|
117
|
-
it 'creates a new Email' do
|
118
|
-
expect do
|
119
|
-
post :create, params: { email: valid_attributes }
|
120
|
-
end.to change(Email, :count).by(1)
|
121
|
-
end
|
122
|
-
|
123
|
-
it 'redirects to the created email' do
|
124
|
-
post :create, params: { email: valid_attributes }
|
125
|
-
expect(response).to redirect_to([:admin, Email.last])
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
context 'with invalid params' do
|
130
|
-
it 'returns a unprocessable_entity response' do
|
131
|
-
post :create, params: { email: invalid_attributes }
|
132
|
-
expect(response).to have_http_status(:unprocessable_entity)
|
133
|
-
end
|
134
|
-
|
135
|
-
it 'renders the new template' do
|
136
|
-
post :create, params: { email: invalid_attributes }
|
137
|
-
expect(response).to render_template(:new)
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
108
|
describe 'PUT #update' do
|
143
109
|
context 'with valid params' do
|
144
110
|
let(:new_attributes) do
|
@@ -26,7 +26,7 @@ def build_body(log_id, signature, timestamp)
|
|
26
26
|
JSON
|
27
27
|
end
|
28
28
|
|
29
|
-
|
29
|
+
describe Public::WebhooksController do
|
30
30
|
include ActiveSupport::Testing::TimeHelpers
|
31
31
|
|
32
32
|
before { travel_to Time.zone.at(1_716_564_587) }
|
@@ -61,7 +61,7 @@ fdescribe Public::WebhooksController do
|
|
61
61
|
expect(response).to have_http_status(:internal_server_error)
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
it do
|
65
65
|
expect { subject }.to have_errored('internal server error')
|
66
66
|
.and(have_errored('no me sirve'))
|
67
67
|
end
|
@@ -75,7 +75,7 @@ fdescribe Public::WebhooksController do
|
|
75
75
|
expect(response).to have_http_status(:bad_request)
|
76
76
|
end
|
77
77
|
|
78
|
-
|
78
|
+
it do
|
79
79
|
expect { subject }.to have_warned('parser error').and(have_warned('mal json'))
|
80
80
|
end
|
81
81
|
end
|
@@ -107,7 +107,7 @@ fdescribe Public::WebhooksController do
|
|
107
107
|
|
108
108
|
it_behaves_like 'todo bien pero no guarda el log'
|
109
109
|
|
110
|
-
|
110
|
+
it do
|
111
111
|
expect { subject }.to have_warned('refusing invalid signature')
|
112
112
|
end
|
113
113
|
end
|
@@ -123,7 +123,7 @@ fdescribe Public::WebhooksController do
|
|
123
123
|
|
124
124
|
it_behaves_like 'todo bien pero no guarda el log'
|
125
125
|
|
126
|
-
|
126
|
+
it do
|
127
127
|
expect { subject }.to have_warned('refusing used token')
|
128
128
|
end
|
129
129
|
end
|
@@ -134,7 +134,7 @@ fdescribe Public::WebhooksController do
|
|
134
134
|
|
135
135
|
it_behaves_like 'todo bien pero no guarda el log'
|
136
136
|
|
137
|
-
|
137
|
+
it do
|
138
138
|
expect { subject }.to have_warned('refusing due to timestamp')
|
139
139
|
end
|
140
140
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
fdescribe 'Enviar email' do
|
4
|
+
include ActiveJob::TestHelper
|
5
|
+
|
6
|
+
subject do
|
7
|
+
fill_in 'email_from_address', with: Faker::Internet.email
|
8
|
+
fill_in 'email_from_name', with: Faker::Name.name
|
9
|
+
fill_in 'email_reply_to', with: Faker::Internet.email
|
10
|
+
fill_in 'email_body_input', with: Faker::Lorem.sentence
|
11
|
+
fill_in 'email_subject', with: Faker::Lorem.sentence
|
12
|
+
click_on 'Enviar'
|
13
|
+
expect(page).to have_text 'revisá los campos obligatorios'
|
14
|
+
fill_in 'email_to', with: Faker::Internet.email
|
15
|
+
click_on 'Enviar'
|
16
|
+
end
|
17
|
+
|
18
|
+
around do |example|
|
19
|
+
perform_enqueued_jobs do
|
20
|
+
example.run
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
before do
|
25
|
+
driven_by ENV['DRIVER']&.to_sym || :selenium_chrome_headless_iphone
|
26
|
+
login_as create(:user, :developer)
|
27
|
+
visit '/a/emails/new'
|
28
|
+
end
|
29
|
+
|
30
|
+
it do
|
31
|
+
subject
|
32
|
+
expect(page).to have_text 'sent'
|
33
|
+
end
|
34
|
+
end
|
@@ -36,8 +36,7 @@ html
|
|
36
36
|
|
37
37
|
link rel="preconnect" href="https://fonts.googleapis.com"
|
38
38
|
link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="crossorigin"
|
39
|
-
link href="
|
40
|
-
0,500;0,700;1,300;1,400;1,500;1,700&display=swap" rel="stylesheet"
|
39
|
+
link href=PgEngine::GOOGLE_FONTS_URL rel="stylesheet"
|
41
40
|
css:
|
42
41
|
body {
|
43
42
|
font-family: "Ubuntu", sans-serif;
|
data/pg_rails/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.8.pre.alpha.
|
4
|
+
version: 7.0.8.pre.alpha.88
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martín Rosso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -989,6 +989,7 @@ files:
|
|
989
989
|
- pg_engine/app/lib/pg_engine/error_helper.rb
|
990
990
|
- pg_engine/app/lib/pg_engine/filtros_builder.rb
|
991
991
|
- pg_engine/app/lib/pg_form_builder.rb
|
992
|
+
- pg_engine/app/mailers/pg_engine/admin_mailer.rb
|
992
993
|
- pg_engine/app/mailers/pg_engine/base_mailer.rb
|
993
994
|
- pg_engine/app/models/account.rb
|
994
995
|
- pg_engine/app/models/current.rb
|
@@ -1015,6 +1016,7 @@ files:
|
|
1015
1016
|
- pg_engine/app/views/admin/email_logs/_form.html.slim
|
1016
1017
|
- pg_engine/app/views/admin/email_logs/show.html.slim
|
1017
1018
|
- pg_engine/app/views/admin/emails/_form.html.slim
|
1019
|
+
- pg_engine/app/views/admin/emails/_send.html.slim
|
1018
1020
|
- pg_engine/app/views/admin/emails/show.html.slim
|
1019
1021
|
- pg_engine/app/views/admin/user_accounts/_form.html.slim
|
1020
1022
|
- pg_engine/app/views/admin/user_accounts/_user_account.html.slim
|
@@ -1026,6 +1028,7 @@ files:
|
|
1026
1028
|
- pg_engine/app/views/admin/users/edit.html.slim
|
1027
1029
|
- pg_engine/app/views/admin/users/new.html.slim
|
1028
1030
|
- pg_engine/app/views/admin/users/show.html.slim
|
1031
|
+
- pg_engine/app/views/pg_engine/admin_mailer/admin_mail.html.slim
|
1029
1032
|
- pg_engine/app/views/pg_engine/base/download.xlsx.axlsx
|
1030
1033
|
- pg_engine/app/views/pg_engine/base/edit.html.slim
|
1031
1034
|
- pg_engine/app/views/pg_engine/base/index.html.slim
|
@@ -1107,6 +1110,7 @@ files:
|
|
1107
1110
|
- pg_engine/spec/pg_engine/pdf_preview_generator_spec.rb
|
1108
1111
|
- pg_engine/spec/system/destroy_spec.rb
|
1109
1112
|
- pg_engine/spec/system/login_spec.rb
|
1113
|
+
- pg_engine/spec/system/send_mail_spec.rb
|
1110
1114
|
- pg_engine/spec/system/signup_spec.rb
|
1111
1115
|
- pg_layout/app/assets/stylesheets/animations.scss
|
1112
1116
|
- pg_layout/app/assets/stylesheets/sidebar.scss
|