forcast 0.0.110

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.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/COPYRIGHTS +11 -0
  4. data/Gemfile +22 -0
  5. data/Gemfile.lock +166 -0
  6. data/PENDIENTES +39 -0
  7. data/README.md +35 -0
  8. data/Rakefile +7 -0
  9. data/VERSION +1 -0
  10. data/bin/console +14 -0
  11. data/bin/rake +28 -0
  12. data/bin/setup +8 -0
  13. data/forcast.gemspec +73 -0
  14. data/lib/forcast.rb +5 -0
  15. data/lib/forcast/controllers/all.rb +2 -0
  16. data/lib/forcast/controllers/application/all.rb +12 -0
  17. data/lib/forcast/controllers/application/crud.rb +91 -0
  18. data/lib/forcast/controllers/application/database.rb +34 -0
  19. data/lib/forcast/controllers/application/error.rb +18 -0
  20. data/lib/forcast/controllers/application/exception_handler.rb +25 -0
  21. data/lib/forcast/controllers/application/json.rb +83 -0
  22. data/lib/forcast/controllers/application/locale.rb +30 -0
  23. data/lib/forcast/controllers/application/log.rb +22 -0
  24. data/lib/forcast/controllers/application/login.rb +41 -0
  25. data/lib/forcast/controllers/application/meta.rb +61 -0
  26. data/lib/forcast/controllers/application/model.rb +17 -0
  27. data/lib/forcast/controllers/application/permitirtodo.rb +27 -0
  28. data/lib/forcast/controllers/application/utils.rb +28 -0
  29. data/lib/forcast/controllers/controller/all.rb +8 -0
  30. data/lib/forcast/controllers/controller/asociar.rb +121 -0
  31. data/lib/forcast/controllers/controller/busqueda.rb +151 -0
  32. data/lib/forcast/controllers/controller/definitor/definitor.rb +322 -0
  33. data/lib/forcast/controllers/controller/definitor/definitor_page.rb +40 -0
  34. data/lib/forcast/controllers/controller/definitor_all.rb +2 -0
  35. data/lib/forcast/controllers/controller/filtro.rb +48 -0
  36. data/lib/forcast/controllers/controller/login/controllers/base_controller.rb +135 -0
  37. data/lib/forcast/controllers/controller/login/controllers/login_controller.rb +38 -0
  38. data/lib/forcast/controllers/controller/login/login.rb +71 -0
  39. data/lib/forcast/controllers/controller/login_all.rb +1 -0
  40. data/lib/forcast/controllers/controller/paper_trail/paper_trail.rb +21 -0
  41. data/lib/forcast/controllers/controller/paper_trail_all.rb +1 -0
  42. data/lib/forcast/controllers/controller/relacion.rb +157 -0
  43. data/lib/forcast/controllers/controller/rule_engine/action_engine.rb +92 -0
  44. data/lib/forcast/controllers/controller/rule_engine/controllers/action_logs_controller.rb +12 -0
  45. data/lib/forcast/controllers/controller/rule_engine/controllers/actions_controller.rb +10 -0
  46. data/lib/forcast/controllers/controller/rule_engine/controllers/pollings_controller.rb +13 -0
  47. data/lib/forcast/controllers/controller/rule_engine/controllers/rule_logs_controller.rb +12 -0
  48. data/lib/forcast/controllers/controller/rule_engine/controllers/rules_controller.rb +19 -0
  49. data/lib/forcast/controllers/controller/rule_engine/controllers/webhooks_controller.rb +27 -0
  50. data/lib/forcast/controllers/controller/rule_engine/polling_engine.rb +76 -0
  51. data/lib/forcast/controllers/controller/rule_engine/rule_controller.rb +27 -0
  52. data/lib/forcast/controllers/controller/rule_engine/rule_engine.rb +88 -0
  53. data/lib/forcast/controllers/controller/rule_engine/webhook_engine.rb +38 -0
  54. data/lib/forcast/controllers/controller/rule_engine_all.rb +5 -0
  55. data/lib/forcast/jobs/all.rb +2 -0
  56. data/lib/forcast/jobs/jobs_assets.rb +25 -0
  57. data/lib/forcast/jobs/jobs_wrapper.rb +25 -0
  58. data/lib/forcast/jobs/rule_engine/jobs_actions.rb +73 -0
  59. data/lib/forcast/jobs/rule_engine/jobs_pollings.rb +77 -0
  60. data/lib/forcast/jobs/rule_engine/jobs_webhooks.rb +54 -0
  61. data/lib/forcast/migrations/0_migracion_general.rb +44 -0
  62. data/lib/forcast/migrations/paper_trail/versions.rb +61 -0
  63. data/lib/forcast/migrations/rule_engine/action_logs.rb +15 -0
  64. data/lib/forcast/migrations/rule_engine/actions.rb +15 -0
  65. data/lib/forcast/migrations/rule_engine/pollings.rb +26 -0
  66. data/lib/forcast/migrations/rule_engine/rule_logs.rb +22 -0
  67. data/lib/forcast/migrations/rule_engine/rules.rb +27 -0
  68. data/lib/forcast/migrations/rule_engine/webhooks.rb +25 -0
  69. data/lib/forcast/models/all.rb +8 -0
  70. data/lib/forcast/models/asociar.rb +74 -0
  71. data/lib/forcast/models/busqueda.rb +17 -0
  72. data/lib/forcast/models/login/authorization.rb +37 -0
  73. data/lib/forcast/models/login/json_web_token.rb +15 -0
  74. data/lib/forcast/models/login/login.rb +26 -0
  75. data/lib/forcast/models/login_all.rb +2 -0
  76. data/lib/forcast/models/meta.rb +19 -0
  77. data/lib/forcast/models/modelo.rb +125 -0
  78. data/lib/forcast/models/models/meta.rb +6 -0
  79. data/lib/forcast/models/paper_trail/paper_trail.rb +13 -0
  80. data/lib/forcast/models/paper_trail_all.rb +1 -0
  81. data/lib/forcast/models/permitirtodo.rb +57 -0
  82. data/lib/forcast/models/rule_engine/action_engine.rb +19 -0
  83. data/lib/forcast/models/rule_engine/models/action.rb +41 -0
  84. data/lib/forcast/models/rule_engine/models/action_log.rb +40 -0
  85. data/lib/forcast/models/rule_engine/models/polling.rb +43 -0
  86. data/lib/forcast/models/rule_engine/models/rule.rb +44 -0
  87. data/lib/forcast/models/rule_engine/models/rule_log.rb +39 -0
  88. data/lib/forcast/models/rule_engine/models/webhook.rb +43 -0
  89. data/lib/forcast/models/rule_engine/polling_engine.rb +113 -0
  90. data/lib/forcast/models/rule_engine/rule.rb +62 -0
  91. data/lib/forcast/models/rule_engine/rule_engine.rb +137 -0
  92. data/lib/forcast/models/rule_engine/rule_scope.rb +35 -0
  93. data/lib/forcast/models/rule_engine/webhook_engine.rb +55 -0
  94. data/lib/forcast/models/rule_engine_all.rb +6 -0
  95. data/lib/forcast/routes/concerns/asociar.rb +15 -0
  96. data/lib/forcast/routes/concerns/buscar.rb +6 -0
  97. data/lib/forcast/routes/concerns/definitor.rb +3 -0
  98. data/lib/forcast/routes/concerns/modelo.rb +6 -0
  99. data/lib/forcast/routes/database.rb +4 -0
  100. data/lib/forcast/routes/login.rb +4 -0
  101. data/lib/forcast/routes/paper_trail/paper_trail.rb +3 -0
  102. data/lib/forcast/routes/rule_engine/rule.rb +5 -0
  103. data/lib/forcast/tasks/.giosaveZr0hbs +21 -0
  104. data/lib/forcast/tasks/.keep +0 -0
  105. data/lib/forcast/tasks/all.rb +16 -0
  106. data/lib/forcast/tasks/diagramas.rake +32 -0
  107. data/lib/forcast/tasks/documentation/documentation.rb +100 -0
  108. data/lib/forcast/tasks/env.rake +10 -0
  109. data/lib/forcast/tasks/git.rake +22 -0
  110. data/lib/forcast/tasks/indy/indy.rb +28 -0
  111. data/lib/forcast/tasks/logs.rake +13 -0
  112. data/lib/forcast/tasks/process.rake +18 -0
  113. data/lib/forcast/tasks/schema.rake +17 -0
  114. data/lib/forcast/tasks/schema/recips/action.rb +18 -0
  115. data/lib/forcast/tasks/schema/recips/controller.rb +29 -0
  116. data/lib/forcast/tasks/schema/recips/definitor.rb +38 -0
  117. data/lib/forcast/tasks/schema/recips/model.rb +43 -0
  118. data/lib/forcast/tasks/schema/recips/project.rb +19 -0
  119. data/lib/forcast/tasks/schema/recips/route.rb +9 -0
  120. data/lib/forcast/tasks/schema/recips/tmp/controller.rb +0 -0
  121. data/lib/forcast/tasks/schema/recips/tmp/model.rb +0 -0
  122. data/lib/forcast/tasks/schema/recips/tmp/model/.keep +0 -0
  123. data/lib/forcast/tasks/schema/rule_engine/rule_engine.rb +98 -0
  124. data/lib/forcast/tasks/schema/schema.rb +346 -0
  125. data/lib/forcast/tasks/test.rake +129 -0
  126. data/lib/forcast/tasks/utils.rake +68 -0
  127. data/lib/forcast/tasks/yard.rake +18 -0
  128. data/lib/forcast/utils/all.rb +4 -0
  129. data/lib/forcast/utils/email.rb +49 -0
  130. data/lib/forcast/utils/email/forcast/utils/email/layout/default.html.erb +3 -0
  131. data/lib/forcast/utils/email/forcast/utils/email/layout/default.text.erb +5 -0
  132. data/lib/forcast/utils/firebase.rb +60 -0
  133. data/lib/forcast/utils/firebase_database.rb +117 -0
  134. data/lib/forcast/utils/measure.rb +44 -0
  135. data/lib/forcast/utils/qvo.rb +141 -0
  136. data/lib/forcast/utils/server.rb +296 -0
  137. data/lib/forcast/utils/telegram.rb +82 -0
  138. data/lib/forcast/utils/thing.rb +180 -0
  139. data/lib/forcast/version.rb +15 -0
  140. data/lib/lib/backup.rb +42 -0
  141. data/lib/lib/deploy.sh +40 -0
  142. data/lib/lib/forcast_servidor_rails.sh +11 -0
  143. data/lib/lib/pg_generator.sh +10 -0
  144. data/lib/lib/production.rb +66 -0
  145. data/lib/lib/production/production.rb +30 -0
  146. data/lib/lib/systemctl_maker.rb +88 -0
  147. data/lib/lib/update.rb +100 -0
  148. data/production.rb +31 -0
  149. metadata +301 -0
@@ -0,0 +1,92 @@
1
+ require 'active_support'
2
+ require 'json'
3
+ module Forcast
4
+ module Controller
5
+ module RuleEngine
6
+ module ActionEngine
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+
11
+ end
12
+ def create
13
+ raise Forcast::Application::Error::General.new(t("error_action_type_dont_permit")) unless Action.action_type_allowed.include?(@action_type)
14
+ raise Forcast::Application::Error::General.new(t("error_action_params_dont_permit")) unless validation_for(@action_type)
15
+ params[:active?] = true
16
+ super
17
+ end
18
+
19
+ def update
20
+ super
21
+ end
22
+
23
+ def validation_for(action_type)
24
+ case action_type
25
+ when "callback"
26
+ return validation_for_callback
27
+ when "email"
28
+ required_email_params = ['owner_email','target_email','attributes']
29
+ validation_for_email(required_email_params)
30
+ convert_params_to_hash(required_email_params)
31
+ when "telegram"
32
+ return true
33
+ else
34
+ return false
35
+ end
36
+ end
37
+
38
+ def validation_for_callback
39
+ begin
40
+ action_params = JSON.parse(@action_params)
41
+ rescue
42
+ puts "Error Parser JSON"
43
+ return false
44
+ end
45
+ puts action_params
46
+ unless action_params && action_params["url"] && action_params["attr"]
47
+ return false
48
+ else
49
+ return false unless action_params["attr"].is_a?(Array)
50
+ model = Rule.find(@rule_id).rule_model
51
+ validate_attr_model(model,action_params["attr"])
52
+ return true
53
+ end
54
+ end
55
+
56
+ def validation_for_email(required_email_params)
57
+ raise Forcast::Application::Error::General.new(t("error_params_email_are_missing")) if params_for_are_missing(required_email_params)
58
+ model = Rule.find(@rule_id).rule_model
59
+ validate_attr_model(model,@attributes)
60
+ end
61
+
62
+ def params_for_are_missing(required_params)
63
+ validation = false
64
+ required_params.each do |key|
65
+ next if params.include?(key)
66
+ validation = true
67
+ end
68
+ validation
69
+ end
70
+
71
+ def convert_params_to_hash(parameters)
72
+ new_params = params.permit(parameters)
73
+ new_params[:attributes] = params[:attributes]
74
+ params[:action_params] = new_params
75
+ end
76
+
77
+ def validate_attr_model(model,attributes)
78
+ model = model.classify.constantize
79
+ attributes.each do |attribute|
80
+ next if attribute == "all"
81
+ if model.column_names.include?(attribute)
82
+ return true
83
+ else
84
+ raise Forcast::Application::Error::General.new(t("error_modelo_attr_doesn't_exist"))
85
+ end
86
+ end
87
+ end
88
+
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,12 @@
1
+ class Api::ActionLogsController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Filtro
6
+ include Forcast::Controller::Busqueda
7
+
8
+ private
9
+
10
+
11
+
12
+ end
@@ -0,0 +1,10 @@
1
+ class Api::ActionsController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Filtro
6
+ include Forcast::Controller::Busqueda
7
+ include Forcast::Controller::RuleEngine::ActionEngine
8
+ private
9
+
10
+ end
@@ -0,0 +1,13 @@
1
+ class Api::PollingsController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Filtro
6
+ include Forcast::Controller::Busqueda
7
+ include Forcast::Controller::RuleEngine::PollingEngine
8
+
9
+ private
10
+
11
+
12
+
13
+ end
@@ -0,0 +1,12 @@
1
+ class Api::RuleLogsController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Filtro
6
+ include Forcast::Controller::Busqueda
7
+
8
+ private
9
+
10
+
11
+
12
+ end
@@ -0,0 +1,19 @@
1
+ class Api::RulesController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Filtro
6
+ include Forcast::Controller::Busqueda
7
+ include Forcast::Controller::RuleEngine::RuleEngine
8
+
9
+ private
10
+
11
+ def validate_model
12
+
13
+ return rule_models = ["Usuario",
14
+ "Administrador"]
15
+
16
+ end
17
+
18
+
19
+ end
@@ -0,0 +1,27 @@
1
+ class Api::WebhooksController < ApplicationController
2
+
3
+ include Forcast::Application::Permitirtodo
4
+ include Forcast::Controller::Relacion
5
+ include Forcast::Controller::Asociar
6
+ include Forcast::Controller::Filtro
7
+ include Forcast::Controller::Busqueda
8
+ include Forcast::Controller::RuleEngine::WebhookEngine
9
+
10
+
11
+ private
12
+
13
+
14
+ # def params_permitidos_enviar
15
+ # return params_permitidos_enviar = []
16
+ # end
17
+
18
+ # def params_permitidos_update
19
+ # return params_permitidos_update = []
20
+ # end
21
+
22
+ # def params_permitidos_buscar
23
+ # return params_permitidos_buscar = []
24
+ # end
25
+
26
+
27
+ end
@@ -0,0 +1,76 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Controller
4
+ module RuleEngine
5
+ module PollingEngine
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ before_action :set_model_rule_and_model_id_rule, only: [:create]
10
+ end
11
+ def create
12
+ params[:polling_model] = @polling_model
13
+ params[:polling_model_id] = @polling_model_id
14
+ params[:active?] = false
15
+ params[:execute?] = true
16
+ params[:send?] = true
17
+ params[:last_execution] = Time.now
18
+ params[:duration_time] ||= 10
19
+ params[:review_time] ||= 30
20
+ params[:send_time] ||= 10
21
+ model_id = super
22
+ if @auto_active
23
+ model_id.update_columns(:active? => true)
24
+ activate_polling
25
+ end
26
+ end
27
+
28
+ def update
29
+ if @variable == 'active?' && @dato == 'true'
30
+ response_to_active
31
+ elsif params[:active?]
32
+ response_to_active
33
+ @datos = @datos.without("active?")
34
+ end
35
+ super
36
+ end
37
+
38
+ def response_to_active
39
+ rule = @model_id.rule
40
+ @polling_model = rule.rule_model
41
+ @polling_model_id = rule.rule_model_id
42
+ @model_id.update_columns(:active? => true,
43
+ :execute? => true,
44
+ :send? => true)
45
+ activate_polling
46
+ end
47
+
48
+ def set_model_rule_and_model_id_rule
49
+ puts "set_modelo_and_modelo_id"
50
+ rule = Rule.find(@rule_id)
51
+ @polling_model = rule.rule_model
52
+ @polling_model_id = rule.rule_model_id
53
+ #pollings = rule.polling.where(:activo? => true)
54
+ #raise Forcast::Application::Error::General.new(t("polling_exist_and_active")) if pollings.first
55
+ raise Forcast::Application::Error::General.new(t("polling_exist")) if Polling.duplicate_object?(object_duplicate_params)
56
+ rule.update_columns(:last_value_attr_comparable => nil)
57
+ end
58
+
59
+ def activate_polling
60
+ Polling.validate_if_work_exists_to_polling(:polling_model => @polling_model,
61
+ :polling_model_id => @polling_model_id,
62
+ :created_at => Time.now.strftime("%m/%d/%Y %H:%M"))
63
+ end
64
+
65
+ def object_duplicate_params
66
+ comp = Hash.new
67
+ comp["polling_model"] = @polling_model
68
+ comp["polling_model_id"] = @polling_model_id
69
+ comp["rule_id"] = @rule_id
70
+ return comp
71
+ end
72
+
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,27 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Controller
4
+ module RuleController
5
+ extend ActiveSupport::Concern
6
+ included do
7
+ before_action :set_model_id_rule, only: [:webhooks, :pollings, :rules]
8
+ end
9
+
10
+ def webhooks
11
+ json_response(@model_id.webhook,'ok')
12
+ end
13
+
14
+ def pollings
15
+ json_response(@model_id.polling,'ok')
16
+ end
17
+
18
+ def rules
19
+ json_response(@model_id.rule,'ok')
20
+ end
21
+
22
+ def set_model_id_rule
23
+ set_model_id
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,88 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Controller
4
+ module RuleEngine
5
+ module RuleEngine
6
+ extend ActiveSupport::Concern
7
+ included do
8
+
9
+ end
10
+ def create
11
+ unless @rules
12
+ raise Forcast::Application::Error::General.new(t("error_rule_model")) unless validate_model.include?(@rule_model)
13
+ unless params[:class_rule?]
14
+ raise Forcast::Application::Error::General.new(t("error_rule_model_id_doesn't_exist")) unless Rule.validate_model_id(@rule_model,@rule_model_id)
15
+ end
16
+ raise Forcast::Application::Error::General.new(t("error_rule_model_attr_doesn't_exist")) unless @rule_class = Rule.validate_attr_model(@rule_model,@attr_comparable)
17
+ raise Forcast::Application::Error::General.new(t("error_unique_rule")) unless Rule.validate_rule_duplicate(nil)
18
+ raise Forcast::Application::Error::General.new(t("error_rule_model_rule_type_dont_permit")) unless Rule.rules_type_allowed.include?(@rule_type)
19
+ if @rule_type == 'logic'
20
+ raise Forcast::Application::Error::General.new(t("error_rule_model_rule_dont_permit")) unless Rule.rules_allowed.include?(@rule)
21
+ raise Forcast::Application::Error::General.new(t("error_rule_model_rule_class_dont_permit")) unless Rule.rules_class_allowed.include?(@rule_class)
22
+ raise Forcast::Application::Error::General.new(t("error_rule_model_rule_and_class_dont_permit")) unless Rule.validate_rule_and_class(@rule,@rule_class,params)
23
+ params[:rule_class] = @rule_class
24
+ end
25
+ params[:active?] = true
26
+ super
27
+ else
28
+ json_response(compatibles_rules,"ok")
29
+ end
30
+ end
31
+
32
+ def update
33
+ case @variable
34
+ when "value"
35
+ attr_comparable = @model_id.attr_comparable
36
+ rule_model = @model_id.rule_model
37
+ model = rule_model.classify.constantize
38
+ rule_class = model.columns_hash["#{attr_comparable}"].type.to_s
39
+ @variable = Rule.validate_class_update(rule_class)
40
+ params[:variable] = @variable
41
+ when "attr_comparable"
42
+ @attr_comparable = @model_id.attr_comparable
43
+ rule_model = @model_id.rule_model
44
+ raise Forcast::Application::Error::General.new(t("error_rule_model_attr_doesn't_exist")) unless Rule.validate_attr_model(rule_model,@dato)
45
+ @model_id.update_columns(:rule_class => @rule_class)
46
+ else
47
+ end
48
+ super
49
+ end
50
+
51
+ def compatibles_rules
52
+ rules = Rule.where(:id => @rules)
53
+ raise Forcast::Application::Error::General.new(t("some_rule_is_missing")) unless @rules.size == rules.size
54
+ raise Forcast::Application::Error::General.new(t("rules_are_not_compatibles")) if rules.pluck(:rule_model,:rule_model_id).uniq.size > 1
55
+ raise Forcast::Application::Error::General.new(t("rule_can_not_be_comparable")) if rules.pluck(:rule_type).include?("logic_comparable")
56
+ rule_type = "logic_comparable"
57
+ return combine_rules(rules, rule_type)
58
+ end
59
+
60
+ def combine_rules(rules,rule_type)
61
+ puts "combine_rules"
62
+ raise Forcast::Application::Error::General.new(t("invalid_combine_type_rule")) unless Rule.valid_combine_type.include?(@combine_type)
63
+ first_rule = rules.first
64
+ @attr_comparable = "rules"
65
+ @rule_model = first_rule.rule_model
66
+ @rule_model_id = first_rule.rule_model_id
67
+ @rule = rules.pluck(:id)
68
+ @rule_class = "array"
69
+ @rule_type = rule_type
70
+ hash_new = Hash.new
71
+ hash_new["active?"] = false
72
+ hash_new["rule_model"] = @rule_model
73
+ hash_new["rule_model_id"] = @rule_model_id
74
+ hash_new["rule_type"] = @rule_type
75
+ hash_new["rule_class"] = @rule_class
76
+ hash_new["attr_comparable"] = @attr_comparable
77
+ hash_new["combine_type"] = @combine_type
78
+ hash_new["rule"] = @rule.join(',')
79
+ raise Forcast::Application::Error::General.new(t("error_unique_rule")) unless Rule.validate_rule_duplicate(hash_new)
80
+ @rule = Rule.create(hash_new)
81
+ return @rule
82
+ end
83
+
84
+
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,38 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Controller
4
+ module RuleEngine
5
+ module WebhookEngine
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ before_action :set_model_rule_and_model_id_rule, only: [:create]
10
+ end
11
+
12
+ def create
13
+ params[:webhook_model] = @webhook_model
14
+ params[:execute?] = true
15
+ params[:send?] = true
16
+ params[:duration_time] ||= 10
17
+ params[:send_time] ||= 10
18
+ model_id = super
19
+ end
20
+
21
+ def set_model_rule_and_model_id_rule
22
+ puts "set_modelo_and_modelo_id"
23
+ rule = Rule.find(@rule_id)
24
+ raise Forcast::Application::Error::General.new(t("webhook_exist")) if Webhook.duplicate_object?(object_duplicate_params)
25
+ rule.update_columns(:last_value_attr_comparable => nil)
26
+ end
27
+
28
+ def object_duplicate_params
29
+ comp = Hash.new
30
+ comp["rule_id"] = @rule_id
31
+ return comp
32
+ end
33
+
34
+
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,5 @@
1
+ require "forcast/controllers/controller/rule_engine/action_engine"
2
+ require "forcast/controllers/controller/rule_engine/rule_engine"
3
+ require "forcast/controllers/controller/rule_engine/polling_engine"
4
+ require "forcast/controllers/controller/rule_engine/webhook_engine"
5
+ require "forcast/controllers/controller/rule_engine/rule_controller"
@@ -0,0 +1,2 @@
1
+ require "forcast/jobs/jobs_assets"
2
+ require "forcast/jobs/jobs_wrapper"
@@ -0,0 +1,25 @@
1
+ require 'sidekiq'
2
+ require 'active_job'
3
+ include Sidekiq::Worker
4
+
5
+ module Forcast
6
+ module Jobs
7
+ module JobsAssets
8
+ class ClearAssests < ActiveJob::Base
9
+ sidekiq_options queue: 'manage_assets'
10
+ def perform (folder)
11
+ system("cd #{folder}")
12
+ #Borro ultimo archivo
13
+ system("ls -t -r | head -1 | xargs rm")
14
+ end
15
+ end
16
+
17
+ class SyncAssests < ActiveJob::Base
18
+ sidekiq_options queue: 'manage_assets'
19
+ def perform (array)
20
+
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end