pg_rails 7.0.8.pre.alpha.56 → 7.0.8.pre.alpha.57

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f7a80ab1d7122dd57f2e7a7d22a28c8c276bcaafd69da7cbf662ce630420fde9
4
- data.tar.gz: 7f28e94ae447b35715c01dfa3c130db7bdc5ab2972a10f30e082fc6edd0fb60d
3
+ metadata.gz: 49e6cb9913064fd946d0ed5100572a31e6e39b7b4c0c5efeb8ca8ca520d9e75b
4
+ data.tar.gz: 206b926af17474e1ce20b6d76724729b60a6ee10955b3b459191949d72bcd3ed
5
5
  SHA512:
6
- metadata.gz: 17bfb418de01d503c8e66bba436a31bf0d807396336e343f3bc202aef3ecadd665227329023b9b5d5f244b6be66ba7f6cadb44cafba90e8b706ee33b1461882e
7
- data.tar.gz: f2cc161384fb6316203459232f9ccb97b6b3c2f5832cc4a143ee5f27fb460da8247f0046ba5b470659d54beb62c463d5bfaa905c9fd7e5a4093a7e3402207943
6
+ metadata.gz: 66dd233f281b67cf4557acdcc839095b6cf4327972f2bde48544a025fadf8ad272b5e6b15aea8fc000e7a8d4cb2dec37af3512d5326d23cf774dfef172a38147
7
+ data.tar.gz: '091b62e7722d9bdabb8df428074ac5f4a796cb1c2a4b058a86c6fd235a88b11dc160b1b30a5b34bd3f807a533c0c7337d61b8d92327028843c2ec1a2f8fd313a'
@@ -1,4 +1,6 @@
1
1
  ActiveAdmin.register Audited::Audit do
2
+ actions :index, :show
3
+
2
4
  permit_params %i[auditable_id auditable_type associated_id associated_type user_id
3
5
  user_type username action audited_changes version comment
4
6
  remote_address request_uuid created_at]
@@ -0,0 +1,22 @@
1
+ ActiveAdmin.register Email do
2
+ actions :index, :show
3
+ index do
4
+ selectable_column
5
+ id_column
6
+ column :from_address
7
+ column :to
8
+ column :subject
9
+ column :body_input
10
+ column :tags
11
+ column :associated
12
+ column :status
13
+ actions
14
+ end
15
+
16
+ filter :from_address
17
+ filter :to
18
+ filter :tags
19
+ filter :message_id
20
+ filter :mailer
21
+ filter :status
22
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generado con pg_rails
4
+
5
+ module Admin
6
+ class EmailsController < AdminController
7
+ include PgEngine::Resource
8
+
9
+ before_action { @clase_modelo = Email }
10
+
11
+ before_action(only: :index) { authorize Email }
12
+
13
+ before_action :set_instancia_modelo, only: %i[new create show edit update destroy content_eml]
14
+
15
+ add_breadcrumb Email.nombre_plural, :admin_emails_path
16
+
17
+ def content_eml
18
+ send_data @email.content_eml, filename: "email_#{@email.id}.txt", disposition: :inline
19
+ end
20
+
21
+ private
22
+
23
+ def atributos_permitidos
24
+ %i[from_address from_name reply_to to subject body_input associated_id associated_type]
25
+ end
26
+
27
+ def atributos_para_buscar
28
+ %i[accepted_at delivered_at opened_at from_address from_name reply_to to subject body_input tags content_eml
29
+ message_id mailer status_detail status]
30
+ end
31
+
32
+ def atributos_para_listar
33
+ %i[from_address to subject body_input tags associated status]
34
+ end
35
+
36
+ def atributos_para_mostrar
37
+ %i[message_id status status_detail accepted_at delivered_at opened_at from_address
38
+ from_name reply_to to subject body_input tags associated mailer content_eml_link]
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generado con pg_rails
4
+
5
+ class EmailDecorator < PgEngine::BaseDecorator
6
+ delegate_all
7
+
8
+ # Define presentation-specific methods here. Helpers are accessed through
9
+ # `helpers` (aka `h`). You can override attributes, for example:
10
+ #
11
+ # def created_at
12
+ # helpers.content_tag :span, class: 'time' do
13
+ # object.created_at.strftime("%a %m/%d/%y")
14
+ # end
15
+ # end
16
+
17
+ def content_eml_link
18
+ link_to 'Download', helpers.content_eml_admin_email_path(object), target: :_blank, rel: :noopener
19
+ end
20
+ end
@@ -0,0 +1,34 @@
1
+ module PgEngine
2
+ class BaseMailer < ActionMailer::Base # rubocop:disable Rails/ApplicationMailer
3
+ class MailNotDelivered < StandardError; end
4
+
5
+ before_action { @email = params[:email] }
6
+
7
+ default from: -> { email_address_with_name(@email.from_address, @email.from_name) },
8
+ reply_to: -> { @email.reply_to },
9
+ subject: -> { @email.subject },
10
+ to: -> { @email.to }
11
+
12
+ layout 'pg_layout/mailer'
13
+
14
+ rescue_from MailNotDelivered do |err|
15
+ # FIXME: marcar el Email en la DB como fallido
16
+ pg_err err
17
+ end
18
+
19
+ def mail
20
+ super.tap do |message|
21
+ # message.mailgun_options = {
22
+ # 'tag' => email.tags,
23
+ # 'tracking-opens' => true
24
+ # }
25
+ message['email'] = @email
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ # # TODO: testear
32
+ # si from está vacío
33
+ # si body está vacío
34
+ # si se lanza PgEngine::BaseMailer::MailNotDelivered
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ # == Schema Information
4
+ #
5
+ # Table name: emails
6
+ #
7
+ # id :bigint not null, primary key
8
+ # accepted_at :datetime
9
+ # associated_type :string indexed => [associated_id]
10
+ # body_input :string
11
+ # content_eml :string
12
+ # delivered_at :datetime
13
+ # from_address :string not null
14
+ # from_name :string
15
+ # mailer :string
16
+ # opened_at :datetime
17
+ # reply_to :string
18
+ # status :integer default(0), not null
19
+ # status_detail :string
20
+ # subject :string
21
+ # tags :string is an Array
22
+ # to :string not null
23
+ # created_at :datetime not null
24
+ # updated_at :datetime not null
25
+ # actualizado_por_id :bigint indexed
26
+ # associated_id :bigint indexed => [associated_type]
27
+ # creado_por_id :bigint indexed
28
+ # message_id :string
29
+ #
30
+ # Foreign Keys
31
+ #
32
+ # fk_rails_... (actualizado_por_id => users.id)
33
+ # fk_rails_... (creado_por_id => users.id)
34
+ #
35
+ # generado con pg_rails
36
+
37
+ class Email < ApplicationRecord
38
+ audited
39
+
40
+ belongs_to :associated, polymorphic: true, optional: true
41
+
42
+ belongs_to :creado_por, optional: true, class_name: 'User'
43
+ belongs_to :actualizado_por, optional: true, class_name: 'User'
44
+
45
+ kredis_unique_list :logs
46
+
47
+ # TODO: y el fallido temporario?
48
+ enumerize :status, in: { pending: 0, blocked: 1, sent: 2, accepted: 3, delivered: 4, rejected: 5 }
49
+
50
+ validates :from_address, :to, :status, presence: true
51
+
52
+ validate do
53
+ if to.present? && !to.split(/[,;]/).all? { |dest| dest.match(/\A[^@\s]+@[^@\s]+\z/) }
54
+ # FIXME: testear
55
+ errors.add(:to, 'no es válido')
56
+ end
57
+ end
58
+
59
+ validates :subject, length: { within: 0..200 }
60
+ validates :from_name, length: { within: 0..80 }
61
+ validates :to, length: { within: 3..200 }
62
+
63
+ validates :from_name, :subject, :to,
64
+ format: { with: /\A[^\n<>&]*\z/, message: 'contiene caracteres inválidos' }
65
+
66
+ after_initialize do
67
+ self.from_address = ENV.fetch('DEFAULT_MAIL_FROM') if from_address.blank?
68
+ end
69
+ # validates_format_of :subject, with: /\A[[[:alpha:]]\(\)\w\s.,;!¡?¿-]+\z/
70
+ # def strip_all(input)
71
+ # return if input.blank?
72
+
73
+ # strip_tags(input.strip)
74
+ # end
75
+
76
+ # def convert_br(input)
77
+ # return if input.blank?
78
+
79
+ # input.gsub("\n", '<br>').html_safe
80
+ # end
81
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generado con pg_rails
4
+
5
+ class EmailPolicy < ApplicationPolicy
6
+ class Scope < ApplicationPolicy::Scope
7
+ # def resolve
8
+ # if policy.acceso_total?
9
+ # scope.all
10
+ # else
11
+ # scope.none
12
+ # end
13
+ # end
14
+ end
15
+
16
+ # def puede_editar?
17
+ # acceso_total? && !record.readonly?
18
+ # end
19
+
20
+ # def puede_crear?
21
+ # acceso_total? || user.asesor?
22
+ # end
23
+
24
+ # def puede_borrar?
25
+ # acceso_total? && !record.readonly?
26
+ # end
27
+
28
+ # def acceso_total?
29
+ # user.developer?
30
+ # end
31
+
32
+ def content_eml?
33
+ acceso_total?
34
+ end
35
+ end
@@ -0,0 +1,16 @@
1
+ / # locals: (object: nil, asociable: false)
2
+
3
+ div style="max-width: 22em" data-controller="pg_form"
4
+ = pg_form_for(@email || object, asociable:) do |f|
5
+ = f.mensajes_de_error
6
+
7
+ = hidden_field_tag :asociable, true if asociable
8
+ = f.input :from_address
9
+ = f.input :from_name
10
+ = f.input :reply_to
11
+ = f.input :to
12
+ = f.input :subject
13
+ = f.input :body_input, as: :text
14
+
15
+ .mt-2
16
+ = f.button :submit
@@ -0,0 +1,29 @@
1
+ - content_for :title do
2
+ = @email.to_s
3
+ - content_for :actions do
4
+ = @email.destroy_link_redirect
5
+ .ms-1
6
+ = @email.edit_link
7
+
8
+ table.table.table-borderless.table-sm.w-auto.mb-0.m-3
9
+ - atributos_para_mostrar.each do |att|
10
+ tr
11
+ th = @clase_modelo.human_attribute_name(att)
12
+ td = @email.send(att)
13
+ tr
14
+ th = t('attributes.creado_por')
15
+ td = @email.creado_por
16
+ tr
17
+ th = t('attributes.created_at')
18
+ td = @email.created_at
19
+ tr
20
+ th = t('attributes.actualizado_por')
21
+ td = @email.actualizado_por
22
+ tr
23
+ th = t('attributes.updated_at')
24
+ td = @email.updated_at
25
+
26
+ h4 Logs
27
+ - @email.logs.to_a.each do |log|
28
+ - json = JSON.parse(log)
29
+ p = json['event']
@@ -19,3 +19,5 @@ ActionMailer::MailDeliveryJob.rescue_from EOFError,
19
19
  OpenSSL::SSL::SSLError do |e|
20
20
  raise MailDeliveryTemporalError, e
21
21
  end
22
+
23
+ ActionMailer::Base.register_observer(PgEngine::EmailObserver)
@@ -9,6 +9,11 @@ Rails.application.routes.draw do
9
9
  registrations: 'users/registrations'
10
10
  }
11
11
  namespace :admin, path: 'a' do
12
+ pg_resource(:emails) do
13
+ member do
14
+ get :content_eml
15
+ end
16
+ end
12
17
  pg_resource(:users)
13
18
  pg_resource(:accounts)
14
19
  pg_resource(:user_accounts)
@@ -16,3 +21,212 @@ Rails.application.routes.draw do
16
21
  end
17
22
  ActiveAdmin.routes(self)
18
23
  end
24
+
25
+ # Prefix Verb URI Pattern Controller#Action
26
+ # abrir_modal_frontend_cosas GET /frontend/cosas/abrir_modal(.:format) frontend/cosas#abrir_modal
27
+ # buscar_frontend_cosas POST /frontend/cosas/buscar(.:format) frontend/cosas#buscar
28
+ # frontend_cosas GET /frontend/cosas(.:format) frontend/cosas#index
29
+ # POST /frontend/cosas(.:format) frontend/cosas#create
30
+ # new_frontend_cosa GET /frontend/cosas/new(.:format) frontend/cosas#new
31
+ # edit_frontend_cosa GET /frontend/cosas/:id/edit(.:format) frontend/cosas#edit
32
+ # frontend_cosa GET /frontend/cosas/:id(.:format) frontend/cosas#show
33
+ # PATCH /frontend/cosas/:id(.:format) frontend/cosas#update
34
+ # PUT /frontend/cosas/:id(.:format) frontend/cosas#update
35
+ # DELETE /frontend/cosas/:id(.:format) frontend/cosas#destroy
36
+ # abrir_modal_frontend_categoria_de_cosas GET /frontend/categoria_de_cosas/abrir_modal(.:format) frontend/categoria_de_cosas#abrir_modal
37
+ # buscar_frontend_categoria_de_cosas POST /frontend/categoria_de_cosas/buscar(.:format) frontend/categoria_de_cosas#buscar
38
+ # frontend_categoria_de_cosas GET /frontend/categoria_de_cosas(.:format) frontend/categoria_de_cosas#index
39
+ # POST /frontend/categoria_de_cosas(.:format) frontend/categoria_de_cosas#create
40
+ # new_frontend_categoria_de_cosa GET /frontend/categoria_de_cosas/new(.:format) frontend/categoria_de_cosas#new
41
+ # edit_frontend_categoria_de_cosa GET /frontend/categoria_de_cosas/:id/edit(.:format) frontend/categoria_de_cosas#edit
42
+ # frontend_categoria_de_cosa GET /frontend/categoria_de_cosas/:id(.:format) frontend/categoria_de_cosas#show
43
+ # PATCH /frontend/categoria_de_cosas/:id(.:format) frontend/categoria_de_cosas#update
44
+ # PUT /frontend/categoria_de_cosas/:id(.:format) frontend/categoria_de_cosas#update
45
+ # DELETE /frontend/categoria_de_cosas/:id(.:format) frontend/categoria_de_cosas#destroy
46
+ # abrir_modal_admin_cosas GET /admin/cosas/abrir_modal(.:format) admin/cosas#abrir_modal
47
+ # buscar_admin_cosas POST /admin/cosas/buscar(.:format) admin/cosas#buscar
48
+ # admin_cosas GET /admin/cosas(.:format) admin/cosas#index
49
+ # POST /admin/cosas(.:format) admin/cosas#create
50
+ # new_admin_cosa GET /admin/cosas/new(.:format) admin/cosas#new
51
+ # edit_admin_cosa GET /admin/cosas/:id/edit(.:format) admin/cosas#edit
52
+ # admin_cosa GET /admin/cosas/:id(.:format) admin/cosas#show
53
+ # PATCH /admin/cosas/:id(.:format) admin/cosas#update
54
+ # PUT /admin/cosas/:id(.:format) admin/cosas#update
55
+ # DELETE /admin/cosas/:id(.:format) admin/cosas#destroy
56
+ # abrir_modal_admin_categoria_de_cosas GET /admin/categoria_de_cosas/abrir_modal(.:format) admin/categoria_de_cosas#abrir_modal
57
+ # buscar_admin_categoria_de_cosas POST /admin/categoria_de_cosas/buscar(.:format) admin/categoria_de_cosas#buscar
58
+ # admin_categoria_de_cosas GET /admin/categoria_de_cosas(.:format) admin/categoria_de_cosas#index
59
+ # POST /admin/categoria_de_cosas(.:format) admin/categoria_de_cosas#create
60
+ # new_admin_categoria_de_cosa GET /admin/categoria_de_cosas/new(.:format) admin/categoria_de_cosas#new
61
+ # edit_admin_categoria_de_cosa GET /admin/categoria_de_cosas/:id/edit(.:format) admin/categoria_de_cosas#edit
62
+ # admin_categoria_de_cosa GET /admin/categoria_de_cosas/:id(.:format) admin/categoria_de_cosas#show
63
+ # PATCH /admin/categoria_de_cosas/:id(.:format) admin/categoria_de_cosas#update
64
+ # PUT /admin/categoria_de_cosas/:id(.:format) admin/categoria_de_cosas#update
65
+ # DELETE /admin/categoria_de_cosas/:id(.:format) admin/categoria_de_cosas#destroy
66
+ # root GET / admin/categoria_de_cosas#index
67
+ # action_with_redirect GET /action_with_redirect(.:format) dummy_base#action_with_redirect
68
+ # check_dev_user GET /check_dev_user(.:format) dummy_base#check_dev_user
69
+ # test_not_authorized GET /test_not_authorized(.:format) dummy_base#test_not_authorized
70
+ # test_internal_error GET /test_internal_error(.:format) dummy_base#test_internal_error
71
+ # turbo_recede_historical_location GET /recede_historical_location(.:format) turbo/native/navigation#recede
72
+ # turbo_resume_historical_location GET /resume_historical_location(.:format) turbo/native/navigation#resume
73
+ # turbo_refresh_historical_location GET /refresh_historical_location(.:format) turbo/native/navigation#refresh
74
+ # abrir_modal_public_mensaje_contactos GET /contacto/abrir_modal(.:format) public/mensaje_contactos#abrir_modal
75
+ # buscar_public_mensaje_contactos POST /contacto/buscar(.:format) public/mensaje_contactos#buscar
76
+ # public_mensaje_contactos POST /contacto(.:format) public/mensaje_contactos#create
77
+ # new_public_mensaje_contacto GET /contacto/new(.:format) public/mensaje_contactos#new
78
+ # new_user_session GET /users/sign_in(.:format) devise/sessions#new
79
+ # user_session POST /users/sign_in(.:format) devise/sessions#create
80
+ # destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
81
+ # new_user_password GET /users/password/new(.:format) devise/passwords#new
82
+ # edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
83
+ # user_password PATCH /users/password(.:format) devise/passwords#update
84
+ # PUT /users/password(.:format) devise/passwords#update
85
+ # POST /users/password(.:format) devise/passwords#create
86
+ # cancel_user_registration GET /users/cancel(.:format) users/registrations#cancel
87
+ # new_user_registration GET /users/sign_up(.:format) users/registrations#new
88
+ # edit_user_registration GET /users/edit(.:format) users/registrations#edit
89
+ # user_registration PATCH /users(.:format) users/registrations#update
90
+ # PUT /users(.:format) users/registrations#update
91
+ # DELETE /users(.:format) users/registrations#destroy
92
+ # POST /users(.:format) users/registrations#create
93
+ # new_user_confirmation GET /users/confirmation/new(.:format) users/confirmations#new
94
+ # user_confirmation GET /users/confirmation(.:format) users/confirmations#show
95
+ # POST /users/confirmation(.:format) users/confirmations#create
96
+ # new_user_unlock GET /users/unlock/new(.:format) devise/unlocks#new
97
+ # user_unlock GET /users/unlock(.:format) devise/unlocks#show
98
+ # POST /users/unlock(.:format) devise/unlocks#create
99
+ # abrir_modal_admin_emails GET /a/emails/abrir_modal(.:format) admin/emails#abrir_modal
100
+ # buscar_admin_emails POST /a/emails/buscar(.:format) admin/emails#buscar
101
+ # content_eml_admin_email GET /a/emails/:id/content_eml(.:format) admin/emails#content_eml
102
+ # admin_emails GET /a/emails(.:format) admin/emails#index
103
+ # POST /a/emails(.:format) admin/emails#create
104
+ # new_admin_email GET /a/emails/new(.:format) admin/emails#new
105
+ # edit_admin_email GET /a/emails/:id/edit(.:format) admin/emails#edit
106
+ # admin_email GET /a/emails/:id(.:format) admin/emails#show
107
+ # PATCH /a/emails/:id(.:format) admin/emails#update
108
+ # PUT /a/emails/:id(.:format) admin/emails#update
109
+ # DELETE /a/emails/:id(.:format) admin/emails#destroy
110
+ # abrir_modal_admin_users GET /a/users/abrir_modal(.:format) admin/users#abrir_modal
111
+ # buscar_admin_users POST /a/users/buscar(.:format) admin/users#buscar
112
+ # admin_users GET /a/users(.:format) admin/users#index
113
+ # POST /a/users(.:format) admin/users#create
114
+ # new_admin_user GET /a/users/new(.:format) admin/users#new
115
+ # edit_admin_user GET /a/users/:id/edit(.:format) admin/users#edit
116
+ # admin_user GET /a/users/:id(.:format) admin/users#show
117
+ # PATCH /a/users/:id(.:format) admin/users#update
118
+ # PUT /a/users/:id(.:format) admin/users#update
119
+ # DELETE /a/users/:id(.:format) admin/users#destroy
120
+ # abrir_modal_admin_accounts GET /a/accounts/abrir_modal(.:format) admin/accounts#abrir_modal
121
+ # buscar_admin_accounts POST /a/accounts/buscar(.:format) admin/accounts#buscar
122
+ # admin_accounts GET /a/accounts(.:format) admin/accounts#index
123
+ # POST /a/accounts(.:format) admin/accounts#create
124
+ # new_admin_account GET /a/accounts/new(.:format) admin/accounts#new
125
+ # edit_admin_account GET /a/accounts/:id/edit(.:format) admin/accounts#edit
126
+ # admin_account GET /a/accounts/:id(.:format) admin/accounts#show
127
+ # PATCH /a/accounts/:id(.:format) admin/accounts#update
128
+ # PUT /a/accounts/:id(.:format) admin/accounts#update
129
+ # DELETE /a/accounts/:id(.:format) admin/accounts#destroy
130
+ # abrir_modal_admin_user_accounts GET /a/user_accounts/abrir_modal(.:format) admin/user_accounts#abrir_modal
131
+ # buscar_admin_user_accounts POST /a/user_accounts/buscar(.:format) admin/user_accounts#buscar
132
+ # admin_user_accounts GET /a/user_accounts(.:format) admin/user_accounts#index
133
+ # POST /a/user_accounts(.:format) admin/user_accounts#create
134
+ # new_admin_user_account GET /a/user_accounts/new(.:format) admin/user_accounts#new
135
+ # edit_admin_user_account GET /a/user_accounts/:id/edit(.:format) admin/user_accounts#edit
136
+ # admin_user_account GET /a/user_accounts/:id(.:format) admin/user_accounts#show
137
+ # PATCH /a/user_accounts/:id(.:format) admin/user_accounts#update
138
+ # PUT /a/user_accounts/:id(.:format) admin/user_accounts#update
139
+ # DELETE /a/user_accounts/:id(.:format) admin/user_accounts#destroy
140
+ # admin_login_as GET /a/login_as(.:format) admin/users#login_as
141
+ # active_admin_root GET /active_admin(.:format) active_admin/dashboard#index
142
+ # batch_action_active_admin_categoria_de_cosas POST /active_admin/categoria_de_cosas/batch_action(.:format) active_admin/categoria_de_cosas#batch_action
143
+ # active_admin_categoria_de_cosas GET /active_admin/categoria_de_cosas(.:format) active_admin/categoria_de_cosas#index
144
+ # POST /active_admin/categoria_de_cosas(.:format) active_admin/categoria_de_cosas#create
145
+ # new_active_admin_categoria_de_cosa GET /active_admin/categoria_de_cosas/new(.:format) active_admin/categoria_de_cosas#new
146
+ # edit_active_admin_categoria_de_cosa GET /active_admin/categoria_de_cosas/:id/edit(.:format) active_admin/categoria_de_cosas#edit
147
+ # active_admin_categoria_de_cosa GET /active_admin/categoria_de_cosas/:id(.:format) active_admin/categoria_de_cosas#show
148
+ # PATCH /active_admin/categoria_de_cosas/:id(.:format) active_admin/categoria_de_cosas#update
149
+ # PUT /active_admin/categoria_de_cosas/:id(.:format) active_admin/categoria_de_cosas#update
150
+ # DELETE /active_admin/categoria_de_cosas/:id(.:format) active_admin/categoria_de_cosas#destroy
151
+ # batch_action_active_admin_cosas POST /active_admin/cosas/batch_action(.:format) active_admin/cosas#batch_action
152
+ # active_admin_cosas GET /active_admin/cosas(.:format) active_admin/cosas#index
153
+ # POST /active_admin/cosas(.:format) active_admin/cosas#create
154
+ # new_active_admin_cosa GET /active_admin/cosas/new(.:format) active_admin/cosas#new
155
+ # edit_active_admin_cosa GET /active_admin/cosas/:id/edit(.:format) active_admin/cosas#edit
156
+ # active_admin_cosa GET /active_admin/cosas/:id(.:format) active_admin/cosas#show
157
+ # PATCH /active_admin/cosas/:id(.:format) active_admin/cosas#update
158
+ # PUT /active_admin/cosas/:id(.:format) active_admin/cosas#update
159
+ # DELETE /active_admin/cosas/:id(.:format) active_admin/cosas#destroy
160
+ # batch_action_active_admin_accounts POST /active_admin/accounts/batch_action(.:format) active_admin/accounts#batch_action
161
+ # active_admin_accounts GET /active_admin/accounts(.:format) active_admin/accounts#index
162
+ # POST /active_admin/accounts(.:format) active_admin/accounts#create
163
+ # new_active_admin_account GET /active_admin/accounts/new(.:format) active_admin/accounts#new
164
+ # edit_active_admin_account GET /active_admin/accounts/:id/edit(.:format) active_admin/accounts#edit
165
+ # active_admin_account GET /active_admin/accounts/:id(.:format) active_admin/accounts#show
166
+ # PATCH /active_admin/accounts/:id(.:format) active_admin/accounts#update
167
+ # PUT /active_admin/accounts/:id(.:format) active_admin/accounts#update
168
+ # DELETE /active_admin/accounts/:id(.:format) active_admin/accounts#destroy
169
+ # batch_action_active_admin_audited_audits POST /active_admin/audited_audits/batch_action(.:format) active_admin/audited_audits#batch_action
170
+ # active_admin_audited_audits GET /active_admin/audited_audits(.:format) active_admin/audited_audits#index
171
+ # active_admin_audited_audit GET /active_admin/audited_audits/:id(.:format) active_admin/audited_audits#show
172
+ # active_admin_dashboard GET /active_admin/dashboard(.:format) active_admin/dashboard#index
173
+ # batch_action_active_admin_emails POST /active_admin/emails/batch_action(.:format) active_admin/emails#batch_action
174
+ # active_admin_emails GET /active_admin/emails(.:format) active_admin/emails#index
175
+ # active_admin_email GET /active_admin/emails/:id(.:format) active_admin/emails#show
176
+ # batch_action_active_admin_mensaje_contactos POST /active_admin/mensaje_contactos/batch_action(.:format) active_admin/mensaje_contactos#batch_action
177
+ # active_admin_mensaje_contactos GET /active_admin/mensaje_contactos(.:format) active_admin/mensaje_contactos#index
178
+ # POST /active_admin/mensaje_contactos(.:format) active_admin/mensaje_contactos#create
179
+ # new_active_admin_mensaje_contacto GET /active_admin/mensaje_contactos/new(.:format) active_admin/mensaje_contactos#new
180
+ # edit_active_admin_mensaje_contacto GET /active_admin/mensaje_contactos/:id/edit(.:format) active_admin/mensaje_contactos#edit
181
+ # active_admin_mensaje_contacto GET /active_admin/mensaje_contactos/:id(.:format) active_admin/mensaje_contactos#show
182
+ # PATCH /active_admin/mensaje_contactos/:id(.:format) active_admin/mensaje_contactos#update
183
+ # PUT /active_admin/mensaje_contactos/:id(.:format) active_admin/mensaje_contactos#update
184
+ # DELETE /active_admin/mensaje_contactos/:id(.:format) active_admin/mensaje_contactos#destroy
185
+ # batch_action_active_admin_user_accounts POST /active_admin/user_accounts/batch_action(.:format) active_admin/user_accounts#batch_action
186
+ # active_admin_user_accounts GET /active_admin/user_accounts(.:format) active_admin/user_accounts#index
187
+ # POST /active_admin/user_accounts(.:format) active_admin/user_accounts#create
188
+ # new_active_admin_user_account GET /active_admin/user_accounts/new(.:format) active_admin/user_accounts#new
189
+ # edit_active_admin_user_account GET /active_admin/user_accounts/:id/edit(.:format) active_admin/user_accounts#edit
190
+ # active_admin_user_account GET /active_admin/user_accounts/:id(.:format) active_admin/user_accounts#show
191
+ # PATCH /active_admin/user_accounts/:id(.:format) active_admin/user_accounts#update
192
+ # PUT /active_admin/user_accounts/:id(.:format) active_admin/user_accounts#update
193
+ # DELETE /active_admin/user_accounts/:id(.:format) active_admin/user_accounts#destroy
194
+ # confirm_active_admin_user PUT /active_admin/users/:id/confirm(.:format) active_admin/users#confirm
195
+ # discard_active_admin_user PUT /active_admin/users/:id/discard(.:format) active_admin/users#discard
196
+ # restore_active_admin_user PUT /active_admin/users/:id/restore(.:format) active_admin/users#restore
197
+ # batch_action_active_admin_users POST /active_admin/users/batch_action(.:format) active_admin/users#batch_action
198
+ # active_admin_users GET /active_admin/users(.:format) active_admin/users#index
199
+ # POST /active_admin/users(.:format) active_admin/users#create
200
+ # new_active_admin_user GET /active_admin/users/new(.:format) active_admin/users#new
201
+ # edit_active_admin_user GET /active_admin/users/:id/edit(.:format) active_admin/users#edit
202
+ # active_admin_user GET /active_admin/users/:id(.:format) active_admin/users#show
203
+ # PATCH /active_admin/users/:id(.:format) active_admin/users#update
204
+ # PUT /active_admin/users/:id(.:format) active_admin/users#update
205
+ # DELETE /active_admin/users/:id(.:format) active_admin/users#destroy
206
+ # active_admin_comments GET /active_admin/comments(.:format) active_admin/comments#index
207
+ # POST /active_admin/comments(.:format) active_admin/comments#create
208
+ # active_admin_comment GET /active_admin/comments/:id(.:format) active_admin/comments#show
209
+ # DELETE /active_admin/comments/:id(.:format) active_admin/comments#destroy
210
+ # rails_postmark_inbound_emails POST /rails/action_mailbox/postmark/inbound_emails(.:format) action_mailbox/ingresses/postmark/inbound_emails#create
211
+ # rails_relay_inbound_emails POST /rails/action_mailbox/relay/inbound_emails(.:format) action_mailbox/ingresses/relay/inbound_emails#create
212
+ # rails_sendgrid_inbound_emails POST /rails/action_mailbox/sendgrid/inbound_emails(.:format) action_mailbox/ingresses/sendgrid/inbound_emails#create
213
+ # rails_mandrill_inbound_health_check GET /rails/action_mailbox/mandrill/inbound_emails(.:format) action_mailbox/ingresses/mandrill/inbound_emails#health_check
214
+ # rails_mandrill_inbound_emails POST /rails/action_mailbox/mandrill/inbound_emails(.:format) action_mailbox/ingresses/mandrill/inbound_emails#create
215
+ # rails_mailgun_inbound_emails POST /rails/action_mailbox/mailgun/inbound_emails/mime(.:format) action_mailbox/ingresses/mailgun/inbound_emails#create
216
+ # rails_conductor_inbound_emails GET /rails/conductor/action_mailbox/inbound_emails(.:format) rails/conductor/action_mailbox/inbound_emails#index
217
+ # POST /rails/conductor/action_mailbox/inbound_emails(.:format) rails/conductor/action_mailbox/inbound_emails#create
218
+ # new_rails_conductor_inbound_email GET /rails/conductor/action_mailbox/inbound_emails/new(.:format) rails/conductor/action_mailbox/inbound_emails#new
219
+ # rails_conductor_inbound_email GET /rails/conductor/action_mailbox/inbound_emails/:id(.:format) rails/conductor/action_mailbox/inbound_emails#show
220
+ # new_rails_conductor_inbound_email_source GET /rails/conductor/action_mailbox/inbound_emails/sources/new(.:format) rails/conductor/action_mailbox/inbound_emails/sources#new
221
+ # rails_conductor_inbound_email_sources POST /rails/conductor/action_mailbox/inbound_emails/sources(.:format) rails/conductor/action_mailbox/inbound_emails/sources#create
222
+ # rails_conductor_inbound_email_reroute POST /rails/conductor/action_mailbox/:inbound_email_id/reroute(.:format) rails/conductor/action_mailbox/reroutes#create
223
+ # rails_conductor_inbound_email_incinerate POST /rails/conductor/action_mailbox/:inbound_email_id/incinerate(.:format) rails/conductor/action_mailbox/incinerates#create
224
+ # rails_service_blob GET /rails/active_storage/blobs/redirect/:signed_id/*filename(.:format) active_storage/blobs/redirect#show
225
+ # rails_service_blob_proxy GET /rails/active_storage/blobs/proxy/:signed_id/*filename(.:format) active_storage/blobs/proxy#show
226
+ # GET /rails/active_storage/blobs/:signed_id/*filename(.:format) active_storage/blobs/redirect#show
227
+ # rails_blob_representation GET /rails/active_storage/representations/redirect/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations/redirect#show
228
+ # rails_blob_representation_proxy GET /rails/active_storage/representations/proxy/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations/proxy#show
229
+ # GET /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations/redirect#show
230
+ # rails_disk_service GET /rails/active_storage/disk/:encoded_key/*filename(.:format) active_storage/disk#show
231
+ # update_rails_disk_service PUT /rails/active_storage/disk/:encoded_token(.:format) active_storage/disk#update
232
+ # rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format) active_storage/direct_uploads#create
@@ -0,0 +1,35 @@
1
+ # generado con pg_rails
2
+
3
+ class CreateEmails < ActiveRecord::Migration[7.1]
4
+ def change
5
+ create_table :emails do |t|
6
+ t.datetime :accepted_at
7
+ t.datetime :delivered_at
8
+ t.datetime :opened_at
9
+ t.string :from_address, null: false
10
+ t.string :from_name
11
+ t.string :reply_to
12
+ t.string :to, null: false
13
+ t.string :subject
14
+ t.string :body_input
15
+ t.string :tags, array: true
16
+ t.references :associated, polymorphic: true, index: true
17
+ t.string :content_eml
18
+ t.string :message_id
19
+ t.string :mailer
20
+ t.string :status_detail
21
+ t.integer :status, null: false, default: 0
22
+
23
+
24
+ t.references :creado_por, index: true
25
+ t.references :actualizado_por, index: true
26
+
27
+
28
+ t.timestamps
29
+ end
30
+
31
+
32
+ add_foreign_key :emails, :users, column: 'creado_por_id'
33
+ add_foreign_key :emails, :users, column: 'actualizado_por_id'
34
+ end
35
+ end