forcast 0.0.110
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/COPYRIGHTS +11 -0
- data/Gemfile +22 -0
- data/Gemfile.lock +166 -0
- data/PENDIENTES +39 -0
- data/README.md +35 -0
- data/Rakefile +7 -0
- data/VERSION +1 -0
- data/bin/console +14 -0
- data/bin/rake +28 -0
- data/bin/setup +8 -0
- data/forcast.gemspec +73 -0
- data/lib/forcast.rb +5 -0
- data/lib/forcast/controllers/all.rb +2 -0
- data/lib/forcast/controllers/application/all.rb +12 -0
- data/lib/forcast/controllers/application/crud.rb +91 -0
- data/lib/forcast/controllers/application/database.rb +34 -0
- data/lib/forcast/controllers/application/error.rb +18 -0
- data/lib/forcast/controllers/application/exception_handler.rb +25 -0
- data/lib/forcast/controllers/application/json.rb +83 -0
- data/lib/forcast/controllers/application/locale.rb +30 -0
- data/lib/forcast/controllers/application/log.rb +22 -0
- data/lib/forcast/controllers/application/login.rb +41 -0
- data/lib/forcast/controllers/application/meta.rb +61 -0
- data/lib/forcast/controllers/application/model.rb +17 -0
- data/lib/forcast/controllers/application/permitirtodo.rb +27 -0
- data/lib/forcast/controllers/application/utils.rb +28 -0
- data/lib/forcast/controllers/controller/all.rb +8 -0
- data/lib/forcast/controllers/controller/asociar.rb +121 -0
- data/lib/forcast/controllers/controller/busqueda.rb +151 -0
- data/lib/forcast/controllers/controller/definitor/definitor.rb +322 -0
- data/lib/forcast/controllers/controller/definitor/definitor_page.rb +40 -0
- data/lib/forcast/controllers/controller/definitor_all.rb +2 -0
- data/lib/forcast/controllers/controller/filtro.rb +48 -0
- data/lib/forcast/controllers/controller/login/controllers/base_controller.rb +135 -0
- data/lib/forcast/controllers/controller/login/controllers/login_controller.rb +38 -0
- data/lib/forcast/controllers/controller/login/login.rb +71 -0
- data/lib/forcast/controllers/controller/login_all.rb +1 -0
- data/lib/forcast/controllers/controller/paper_trail/paper_trail.rb +21 -0
- data/lib/forcast/controllers/controller/paper_trail_all.rb +1 -0
- data/lib/forcast/controllers/controller/relacion.rb +157 -0
- data/lib/forcast/controllers/controller/rule_engine/action_engine.rb +92 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/action_logs_controller.rb +12 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/actions_controller.rb +10 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/pollings_controller.rb +13 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/rule_logs_controller.rb +12 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/rules_controller.rb +19 -0
- data/lib/forcast/controllers/controller/rule_engine/controllers/webhooks_controller.rb +27 -0
- data/lib/forcast/controllers/controller/rule_engine/polling_engine.rb +76 -0
- data/lib/forcast/controllers/controller/rule_engine/rule_controller.rb +27 -0
- data/lib/forcast/controllers/controller/rule_engine/rule_engine.rb +88 -0
- data/lib/forcast/controllers/controller/rule_engine/webhook_engine.rb +38 -0
- data/lib/forcast/controllers/controller/rule_engine_all.rb +5 -0
- data/lib/forcast/jobs/all.rb +2 -0
- data/lib/forcast/jobs/jobs_assets.rb +25 -0
- data/lib/forcast/jobs/jobs_wrapper.rb +25 -0
- data/lib/forcast/jobs/rule_engine/jobs_actions.rb +73 -0
- data/lib/forcast/jobs/rule_engine/jobs_pollings.rb +77 -0
- data/lib/forcast/jobs/rule_engine/jobs_webhooks.rb +54 -0
- data/lib/forcast/migrations/0_migracion_general.rb +44 -0
- data/lib/forcast/migrations/paper_trail/versions.rb +61 -0
- data/lib/forcast/migrations/rule_engine/action_logs.rb +15 -0
- data/lib/forcast/migrations/rule_engine/actions.rb +15 -0
- data/lib/forcast/migrations/rule_engine/pollings.rb +26 -0
- data/lib/forcast/migrations/rule_engine/rule_logs.rb +22 -0
- data/lib/forcast/migrations/rule_engine/rules.rb +27 -0
- data/lib/forcast/migrations/rule_engine/webhooks.rb +25 -0
- data/lib/forcast/models/all.rb +8 -0
- data/lib/forcast/models/asociar.rb +74 -0
- data/lib/forcast/models/busqueda.rb +17 -0
- data/lib/forcast/models/login/authorization.rb +37 -0
- data/lib/forcast/models/login/json_web_token.rb +15 -0
- data/lib/forcast/models/login/login.rb +26 -0
- data/lib/forcast/models/login_all.rb +2 -0
- data/lib/forcast/models/meta.rb +19 -0
- data/lib/forcast/models/modelo.rb +125 -0
- data/lib/forcast/models/models/meta.rb +6 -0
- data/lib/forcast/models/paper_trail/paper_trail.rb +13 -0
- data/lib/forcast/models/paper_trail_all.rb +1 -0
- data/lib/forcast/models/permitirtodo.rb +57 -0
- data/lib/forcast/models/rule_engine/action_engine.rb +19 -0
- data/lib/forcast/models/rule_engine/models/action.rb +41 -0
- data/lib/forcast/models/rule_engine/models/action_log.rb +40 -0
- data/lib/forcast/models/rule_engine/models/polling.rb +43 -0
- data/lib/forcast/models/rule_engine/models/rule.rb +44 -0
- data/lib/forcast/models/rule_engine/models/rule_log.rb +39 -0
- data/lib/forcast/models/rule_engine/models/webhook.rb +43 -0
- data/lib/forcast/models/rule_engine/polling_engine.rb +113 -0
- data/lib/forcast/models/rule_engine/rule.rb +62 -0
- data/lib/forcast/models/rule_engine/rule_engine.rb +137 -0
- data/lib/forcast/models/rule_engine/rule_scope.rb +35 -0
- data/lib/forcast/models/rule_engine/webhook_engine.rb +55 -0
- data/lib/forcast/models/rule_engine_all.rb +6 -0
- data/lib/forcast/routes/concerns/asociar.rb +15 -0
- data/lib/forcast/routes/concerns/buscar.rb +6 -0
- data/lib/forcast/routes/concerns/definitor.rb +3 -0
- data/lib/forcast/routes/concerns/modelo.rb +6 -0
- data/lib/forcast/routes/database.rb +4 -0
- data/lib/forcast/routes/login.rb +4 -0
- data/lib/forcast/routes/paper_trail/paper_trail.rb +3 -0
- data/lib/forcast/routes/rule_engine/rule.rb +5 -0
- data/lib/forcast/tasks/.giosaveZr0hbs +21 -0
- data/lib/forcast/tasks/.keep +0 -0
- data/lib/forcast/tasks/all.rb +16 -0
- data/lib/forcast/tasks/diagramas.rake +32 -0
- data/lib/forcast/tasks/documentation/documentation.rb +100 -0
- data/lib/forcast/tasks/env.rake +10 -0
- data/lib/forcast/tasks/git.rake +22 -0
- data/lib/forcast/tasks/indy/indy.rb +28 -0
- data/lib/forcast/tasks/logs.rake +13 -0
- data/lib/forcast/tasks/process.rake +18 -0
- data/lib/forcast/tasks/schema.rake +17 -0
- data/lib/forcast/tasks/schema/recips/action.rb +18 -0
- data/lib/forcast/tasks/schema/recips/controller.rb +29 -0
- data/lib/forcast/tasks/schema/recips/definitor.rb +38 -0
- data/lib/forcast/tasks/schema/recips/model.rb +43 -0
- data/lib/forcast/tasks/schema/recips/project.rb +19 -0
- data/lib/forcast/tasks/schema/recips/route.rb +9 -0
- data/lib/forcast/tasks/schema/recips/tmp/controller.rb +0 -0
- data/lib/forcast/tasks/schema/recips/tmp/model.rb +0 -0
- data/lib/forcast/tasks/schema/recips/tmp/model/.keep +0 -0
- data/lib/forcast/tasks/schema/rule_engine/rule_engine.rb +98 -0
- data/lib/forcast/tasks/schema/schema.rb +346 -0
- data/lib/forcast/tasks/test.rake +129 -0
- data/lib/forcast/tasks/utils.rake +68 -0
- data/lib/forcast/tasks/yard.rake +18 -0
- data/lib/forcast/utils/all.rb +4 -0
- data/lib/forcast/utils/email.rb +49 -0
- data/lib/forcast/utils/email/forcast/utils/email/layout/default.html.erb +3 -0
- data/lib/forcast/utils/email/forcast/utils/email/layout/default.text.erb +5 -0
- data/lib/forcast/utils/firebase.rb +60 -0
- data/lib/forcast/utils/firebase_database.rb +117 -0
- data/lib/forcast/utils/measure.rb +44 -0
- data/lib/forcast/utils/qvo.rb +141 -0
- data/lib/forcast/utils/server.rb +296 -0
- data/lib/forcast/utils/telegram.rb +82 -0
- data/lib/forcast/utils/thing.rb +180 -0
- data/lib/forcast/version.rb +15 -0
- data/lib/lib/backup.rb +42 -0
- data/lib/lib/deploy.sh +40 -0
- data/lib/lib/forcast_servidor_rails.sh +11 -0
- data/lib/lib/pg_generator.sh +10 -0
- data/lib/lib/production.rb +66 -0
- data/lib/lib/production/production.rb +30 -0
- data/lib/lib/systemctl_maker.rb +88 -0
- data/lib/lib/update.rb +100 -0
- data/production.rb +31 -0
- metadata +301 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
require_relative 'base'
|
2
|
+
|
3
|
+
class Tables::Webhooks < Tables::Base
|
4
|
+
|
5
|
+
def self.table(migration)
|
6
|
+
create_table migration do |t|
|
7
|
+
t.string :webhook_model
|
8
|
+
t.integer :webhook_model_id
|
9
|
+
t.integer :send_time
|
10
|
+
t.integer :duration_time
|
11
|
+
t.boolean :active?
|
12
|
+
t.boolean :forever_true?
|
13
|
+
t.datetime :last_execution
|
14
|
+
t.datetime :last_review_send
|
15
|
+
t.datetime :last_send
|
16
|
+
t.boolean :execute?
|
17
|
+
t.boolean :send?
|
18
|
+
t.boolean :class_webhook?
|
19
|
+
t.bigint :rule_id
|
20
|
+
t.index :rule_id, name: 'index_rule_webhook_id'
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require "forcast/models/meta"
|
2
|
+
require "forcast/models/asociar"
|
3
|
+
require "forcast/models/busqueda"
|
4
|
+
require "forcast/models/modelo"
|
5
|
+
require "forcast/models/permitirtodo"
|
6
|
+
require "forcast/models/rule_engine_all"
|
7
|
+
require "forcast/models/paper_trail_all"
|
8
|
+
require "forcast/models/login_all"
|
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Asociar
|
5
|
+
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
|
9
|
+
|
10
|
+
included do
|
11
|
+
|
12
|
+
def self.no_asociados_a(modelo)
|
13
|
+
|
14
|
+
self.where(modelo => [1,nil])
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def ver_asociado(modelo)
|
20
|
+
|
21
|
+
return c_to_m(modelo).where(:id => self.id)
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
def asociar_a(modelo, id)
|
26
|
+
|
27
|
+
self.update(modelo => id)
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
def agregar_asociado(modelo,id)
|
32
|
+
nombre = (self.class.name + '_id').downcase
|
33
|
+
c_to_m(modelo).find(id).update( nombre => self.id)
|
34
|
+
end
|
35
|
+
|
36
|
+
def desasociar_de(modelo)
|
37
|
+
|
38
|
+
self.update(modelo => 1)
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
def quitar_asociado(modelo,id)
|
43
|
+
nombre = (self.class.name + '_id').downcase
|
44
|
+
c_to_m(modelo).find(id).update( nombre => 1)
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
def asociado_a?(modelo, id)
|
49
|
+
|
50
|
+
self.read_attribute(modelo) === id.to_i ? false : true
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
def agregar_asociado_a?(modelo, id)
|
55
|
+
|
56
|
+
nombre = (self.class.name + '_id').downcase
|
57
|
+
c_to_m(modelo).find(id).read_attribute(nombre) === self.id.to_i ? false : true
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
def asociado_existe?(modelo, id)
|
62
|
+
|
63
|
+
c_to_m(modelo).exists?(id) ? true : false
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
def c_to_m(str)
|
68
|
+
return str.classify.constantize
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Busqueda
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
scope :buscar_nombre_scope, -> (nombre) { where nombre: nombre }
|
9
|
+
scope :buscar_parametro_exacto_scope, -> (parametro,dato) { where parametro => dato }
|
10
|
+
scope :buscar_parametro_contiene_scope, -> (parametro,contiene) { where "#{parametro} like ?", "%#{contiene}%"}
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Authorization < ApplicationRecord
|
2
|
+
belongs_to :user, optional: true
|
3
|
+
|
4
|
+
def get_token
|
5
|
+
jwt_token = if user.present?
|
6
|
+
JsonWebToken.encode({user_id:self.user.id, birthday_date:self.created_at})
|
7
|
+
elsif admin_user.present?
|
8
|
+
JsonWebToken.encode({admin_user_id:self.admin_user.id, birthday_date:self.created_at})
|
9
|
+
end
|
10
|
+
|
11
|
+
jwt_token
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.invalidate_token(given_token)
|
15
|
+
temporal_auth = Authorization.new()
|
16
|
+
|
17
|
+
decoded_token = JsonWebToken.decode(given_token)
|
18
|
+
|
19
|
+
if decoded_token.blank?
|
20
|
+
temporal_auth.errors.add(:base, I18n.t("activerecord.errors.token.not_exits"))
|
21
|
+
else
|
22
|
+
user_id = decoded_token[:user_id]
|
23
|
+
created_at_format = decoded_token[:birthday_date]
|
24
|
+
created_at = Time.parse(created_at_format)
|
25
|
+
|
26
|
+
auth = Authorization.find_by(user_id:user_id,active_time_stamp:created_at.to_i)
|
27
|
+
if auth.present? && auth.operative
|
28
|
+
auth.operative = false
|
29
|
+
auth.save
|
30
|
+
else
|
31
|
+
temporal_auth.errors.add(:base, I18n.t("activerecord.errors.token.already_invalid"))
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
temporal_auth
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class JsonWebToken
|
2
|
+
class << self
|
3
|
+
def encode(payload,exp = 15.year.from_now)
|
4
|
+
payload[:exp] = exp.to_i
|
5
|
+
JWT.encode(payload, Rails.application.secrets.secret_key_base)
|
6
|
+
end
|
7
|
+
|
8
|
+
def decode(token)
|
9
|
+
return HashWithIndifferentAccess.new(JWT.decode(token, Rails.application.secrets.secret_key_base)[0])
|
10
|
+
rescue
|
11
|
+
nil
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'bcrypt'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Login
|
5
|
+
include BCrypt
|
6
|
+
|
7
|
+
def generate_auth_token
|
8
|
+
token = SecureRandom.hex
|
9
|
+
self.update_columns(auth_token: token, token_created_at: Time.zone.now)
|
10
|
+
return token
|
11
|
+
end
|
12
|
+
|
13
|
+
def invalidate_auth_token
|
14
|
+
self.update_columns(auth_token: nil, token_created_at: nil)
|
15
|
+
end
|
16
|
+
|
17
|
+
def password=(password)
|
18
|
+
self.password_hash = BCrypt::Password.create(password)
|
19
|
+
end
|
20
|
+
|
21
|
+
def is_password?(password)
|
22
|
+
BCrypt::Password.new(self.password_hash) == password
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Meta
|
5
|
+
extend ActiveSupport::Concern
|
6
|
+
|
7
|
+
included do
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize()
|
12
|
+
@name = attributes[:name]
|
13
|
+
@email = attributes[:email]
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Modelo
|
5
|
+
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
def create(params)
|
9
|
+
self.attributes.each do |att|
|
10
|
+
next if att[0] == 'id'
|
11
|
+
self.write_attribute(att[0], params[att[0]])
|
12
|
+
end
|
13
|
+
begin
|
14
|
+
init(params)
|
15
|
+
rescue
|
16
|
+
|
17
|
+
ensure
|
18
|
+
return true if self.save
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
def errores
|
24
|
+
self.errors.full_messages
|
25
|
+
end
|
26
|
+
|
27
|
+
included do
|
28
|
+
|
29
|
+
def self.model
|
30
|
+
return model_name.name.classify.constantize
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.nombre_existe?(nombre)
|
34
|
+
model.exists?(nombre: nombre)
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.parametro_existe?(param,dato)
|
38
|
+
return model.exists?(param => dato)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.duplate_object?(comp)
|
42
|
+
object_unique = model.exists?(comp)
|
43
|
+
return object_unique
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.parametros_existen_create?(param)
|
47
|
+
a,b = false
|
48
|
+
parametros_a_comprobar_si_existen_create.each do |comprobar|
|
49
|
+
next unless model.exists?(comprobar => param[comprobar])
|
50
|
+
a = true
|
51
|
+
b = comprobar
|
52
|
+
break
|
53
|
+
end
|
54
|
+
return [a,b]
|
55
|
+
end
|
56
|
+
|
57
|
+
def self.parametros_a_validar_create (datos)
|
58
|
+
a,b = false
|
59
|
+
c = []
|
60
|
+
datos.each do |data|
|
61
|
+
c = model.validaciones_create(data[0],data[1])
|
62
|
+
next unless c[1]
|
63
|
+
a = true
|
64
|
+
b = c[0]
|
65
|
+
break
|
66
|
+
end
|
67
|
+
return [a,b]
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.parametros_estan_create?(params)
|
71
|
+
if (parametros_necesario_create - params).empty?
|
72
|
+
return false
|
73
|
+
else
|
74
|
+
return true
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.validaciones_create(param, dato)
|
79
|
+
vald = parametros_a_validar_modelo_create.select{ |item| item[:param] == param }
|
80
|
+
return ['',false] if vald.empty?
|
81
|
+
abstract_validation do
|
82
|
+
conf = Hash.new
|
83
|
+
conf[:param_param] = param
|
84
|
+
conf[:param] = vald[0][:param]
|
85
|
+
conf[:valor] = vald[0][:valor]
|
86
|
+
conf[:validacion] = vald[0][:validacion]
|
87
|
+
conf[:error] = vald[0][:error]
|
88
|
+
conf[:comp] = dato
|
89
|
+
conf
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.validaciones_update(param, dato)
|
94
|
+
vald = parametros_a_validar_modelo_update.select{ |item| item[:param] == param }
|
95
|
+
return ['',false] if vald.empty?
|
96
|
+
abstract_validation do
|
97
|
+
conf = Hash.new
|
98
|
+
conf[:param_param] = param
|
99
|
+
conf[:param] = vald[0][:param]
|
100
|
+
conf[:valor] = vald[0][:valor]
|
101
|
+
conf[:validacion] = vald[0][:validacion]
|
102
|
+
conf[:error] = vald[0][:error]
|
103
|
+
conf[:comp] = dato
|
104
|
+
conf
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def self.abstract_validation
|
109
|
+
conf = yield
|
110
|
+
if conf[:param_param] == conf[:param]
|
111
|
+
if self.send(conf[:validacion],conf[:comp])
|
112
|
+
return [conf[:error],true]
|
113
|
+
else
|
114
|
+
return ['',false]
|
115
|
+
end
|
116
|
+
else
|
117
|
+
return ['',false]
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require "forcast/models/paper_trail/paper_trail"
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module Permitirtodo
|
5
|
+
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
def init
|
9
|
+
|
10
|
+
|
11
|
+
end
|
12
|
+
|
13
|
+
included do
|
14
|
+
|
15
|
+
def self.parametros_necesario_create
|
16
|
+
array = []
|
17
|
+
return array
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def self.params_permitidos_asociar
|
22
|
+
n = []
|
23
|
+
self.reflect_on_all_associations(:belongs_to).each do |x|
|
24
|
+
n = n.push(x.name.to_s+'_id')
|
25
|
+
end
|
26
|
+
return params_permitidos_asociar = n
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.params_permitidos_agregar
|
30
|
+
n = []
|
31
|
+
self.reflect_on_all_associations(:has_many).each do |x|
|
32
|
+
n = n.push(x.name.to_s+'_id')
|
33
|
+
end
|
34
|
+
return params_permitidos_agregar = n
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def self.parametros_a_comprobar_si_existen_create
|
39
|
+
return parametros_a_comprobar_si_existen_create = []
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.parametros_a_comprobar_si_existen_update
|
43
|
+
return parametros_a_comprobar_si_existen_update = []
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.validaciones_create(param, dato)
|
47
|
+
return ['',false]
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.validaciones_update (param,dato)
|
51
|
+
return ['',false]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'active_support'
|
2
|
+
module Forcast
|
3
|
+
module Model
|
4
|
+
module RuleEngine
|
5
|
+
module ActionEngine
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
|
10
|
+
def self.action_type_allowed
|
11
|
+
return action_type_allowed = ["callback", "telegram","email"]
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|