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,91 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Application
4
+ module Crud
5
+
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ #before_action :require_login!
10
+ #before_action :require_admin!, only: [:create, :update, :destroy]
11
+ before_action :model, :limit_query
12
+ before_action :jsonparser,:params_to_global, except:[:index, :show]
13
+ before_action :set_model_id, only: [:show, :update, :destroy]
14
+
15
+ end
16
+ #model = Metodo que devuelve el objecto ActiveRecord por Nombre del controlador
17
+ #@model_id = Objecto instanciado por el param ID
18
+
19
+ def index
20
+ # buscar_por_nombre if params_present?('nombre')
21
+ # buscar_por_parametro_exacto if params_present?('buscar_por') && params_present?('dato')
22
+ # buscar_por_parametro_contiene if params_present?('buscar_por') && params_present?('contiene')
23
+
24
+ #Arreglar HARDCODEO
25
+ #@response = @model.last(@limit) if controller_name == 'alarmas'
26
+ meta = Meta::MetaRelation.new(@model)
27
+ @model = meta.egear_load(@model)
28
+ @response ||= @model.all.limit(@limit).order('id desc').select(*params_permitidos_enviar).map {|e| e.as_json.merge("meta" => meta.has_relation(e)) }
29
+ json_response(@response,t("ok"),200)
30
+ end
31
+
32
+ def show
33
+ meta = Meta::MetaRelation.new(@model)
34
+ @model = meta.egear_load(@model)
35
+ @response ||= @model_id.attributes.slice(*params_permitidos_enviar)
36
+ @response[:meta] = meta.has_relation(@model_id)
37
+ json_response(@response,t("ok"))
38
+ end
39
+
40
+ def create
41
+ @create_model = @model.new
42
+ raise Error::General.new(t("bad_params")) if @model.parametros_estan_create?(@params)
43
+ #raise Error::General.new(t("bad_name")) if @model.nombre_existe?(@nombre)
44
+ #raise Error::General.new(t("#{c}.#{a}.bad_custom", param: 'nombre')) if @model.parametro_existe?('nombre',@nombre)
45
+ ## Metodo General para comprobar parametros de creación
46
+ comprobar = @model.parametros_existen_create?(params)
47
+ raise Error::General.new(t("bad_custom", param: comprobar[1])) if comprobar[0]
48
+ comprobar = @model.parametros_a_validar_create(@datos)
49
+ raise Error::General.new(t("bad_params_not_allow_custom", param: t(comprobar[1].to_s))) if comprobar[0]
50
+ @response ||= @create_model
51
+ @create_model.create(params) ? json_response(@response,t("ok")) : (raise Error::General.new(@create_model.errores))
52
+ return @create_model
53
+ end
54
+
55
+ def update
56
+ unless @variable == "all"
57
+ raise Error::General.new(t("bad_param")) unless params_permitidos_update.include?(@variable)
58
+ raise Error::General.new(t("bad_param_exists_custom", param: @variable)) if @model.parametro_existe?(@variable,@dato) && @model.parametros_a_comprobar_si_existen_update.include?(@variable)
59
+ comprobar = @model.validaciones_update(@variable,@dato)
60
+ raise Error::General.new(t("bad_param_not_allow_custom", param: t(comprobar[0].to_s))) if comprobar[1]
61
+ @dato = true if @dato == 'true'
62
+ @dato = false if @dato == 'false'
63
+ @model_id.update(Hash[@variable, @dato])
64
+ #@model_id.update_columns(Hash[@variable, @dato])
65
+ else
66
+ @datos_mod = @datos.without("variable")
67
+ @datos_mod.keys.each do |key|
68
+ @variable = key
69
+ @dato = @datos_mod[key]
70
+ raise Error::General.new(t("bad_param")) unless params_permitidos_update.include?(@variable)
71
+ raise Error::General.new(t("bad_param_exists_custom", param: @variable)) if @model.parametro_existe?(@variable,@dato) && @model.parametros_a_comprobar_si_existen_update.include?(@variable)
72
+ comprobar = @model.validaciones_update(@variable,@dato)
73
+ raise Error::General.new(t("bad_param_not_allow_custom", param: t(comprobar[0].to_s))) if comprobar[1]
74
+ @dato = true if @dato == 'true'
75
+ @dato = false if @dato == 'false'
76
+ end
77
+ @model_id.update(@datos_mod)
78
+ #@model_id.update_columns(@datos_mod)
79
+ end
80
+ @response ||= @model_id.attributes.slice(*params_permitidos_enviar)
81
+ json_response(@response,t("ok"))
82
+ end
83
+
84
+
85
+ def destroy
86
+ @model_id.destroy ? json_response(t("ok")) : (raise Error::General.new(@model_id.errores))
87
+ end
88
+
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,34 @@
1
+ module Forcast
2
+ module Application
3
+ module Database
4
+ def insert_multiples_object_db_sqlite3(model,array)
5
+ params = array[0].keys.collect { |x| "'"+x.to_s+"'" }.join(', ').to_s+",'created_at','updated_at'"
6
+ values = []
7
+ array.each do |arr|
8
+ next if arr.nil?
9
+ str = contructor_insert_multiples_object_db_sqlite3(arr.values)
10
+ values.push(str)
11
+ end
12
+ values = values.join(",")
13
+ begin
14
+ ActiveRecord::Base.connection.execute("INSERT INTO #{model} (#{params}) VALUES #{values}")
15
+ rescue
16
+
17
+ end
18
+ ActiveRecord::Base.connection.close
19
+ end
20
+
21
+ def contructor_insert_multiples_object_db_sqlite3(array)
22
+ str = '('
23
+ array.each do |arr|
24
+ str += "'"+arr.to_s+"'"+','
25
+ end
26
+ str += "'"+Time.now.to_s+"'"+','
27
+ str += "'"+Time.now.to_s+"'"+','
28
+ str = str[0...-1]
29
+ str += ')'
30
+ return str
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,18 @@
1
+ module Forcast
2
+ module Application
3
+ module Error
4
+ class General < StandardError
5
+
6
+ attr_reader :status, :error, :message
7
+
8
+ def initialize(_message=nil)
9
+ @message = _message || 'Error General'
10
+ end
11
+
12
+ def fetch_json
13
+ Helpers::Render.json(error, message, status)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,25 @@
1
+ # app/controllers/concerns/exception_handler.rb
2
+ require 'active_support'
3
+ module Forcast
4
+ module Application
5
+ module ExceptionHandler
6
+ # provides the more graceful `included` method
7
+ extend ActiveSupport::Concern
8
+
9
+ included do
10
+ rescue_from ActiveRecord::RecordNotFound do |e|
11
+ json_response({ message: e.message }, :not_found, 404)
12
+ end
13
+
14
+ rescue_from ActiveRecord::RecordInvalid do |e|
15
+ json_response({ message: e.message }, :unprocessable_entity)
16
+ end
17
+
18
+ rescue_from Error::General do |e|
19
+ jsonerror_response(e.message)
20
+ end
21
+
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,83 @@
1
+ module Forcast
2
+ module Application
3
+ module Json
4
+
5
+ def json_response(object = '', message = '', status = 200, meta = {})
6
+
7
+ object.is_a?(Hash) ? object = [object] : object
8
+
9
+ render json: {
10
+ object: object,
11
+ message: message,
12
+ status: status,
13
+ meta: meta
14
+ }, status: status
15
+ end
16
+
17
+ def jsonerror_response(message = '')
18
+
19
+ render json: {
20
+ message: message,
21
+ status: 400
22
+ }, status: 400
23
+
24
+ end
25
+
26
+
27
+ def json_requestall(object)
28
+
29
+ @datos = []
30
+ @datos = JSON.parse(object) if valid_json?(object)
31
+ @params = []
32
+ @params_data = []
33
+ @datos.each do |datos|
34
+
35
+ unless datos[0].nil? || datos [1].nil?
36
+ symbol = datos[0]
37
+ ####
38
+ @params.push(symbol)
39
+ @params_data.push(datos [1])
40
+ next if symbol.include?('?')
41
+ instance_variable_set("@#{symbol}", datos[1])
42
+ end
43
+
44
+ end
45
+
46
+ end
47
+
48
+
49
+ #convierto los parametros en variable globales @
50
+ def params_to_global
51
+ @params = []
52
+ @params_data = []
53
+ params.each do |key, value|
54
+ @params.push(key)
55
+ @params_data.push(value)
56
+ next if key.include?('?')
57
+ instance_variable_set("@#{key}", value)
58
+ end
59
+
60
+ end
61
+
62
+
63
+ def jsonparser
64
+
65
+ data = request.body.read
66
+ json_requestall(data)
67
+
68
+ end
69
+
70
+
71
+ def valid_json?(json)
72
+ JSON.parse(json)
73
+ return true
74
+ rescue JSON::ParserError => e
75
+ return false
76
+ end
77
+
78
+
79
+
80
+
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,30 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Application
4
+ module Locale
5
+
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ before_action :set_locale
10
+ end
11
+ def set_locale
12
+ I18n.locale = I18n.default_locale
13
+ end
14
+
15
+ def t (s,custom='')
16
+ str = c + '.' + a + '.'+s
17
+ return I18n.t(str,custom)
18
+ end
19
+
20
+ def c
21
+ return controller_name
22
+ end
23
+
24
+ def a
25
+ return action_name
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,22 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Application
4
+ module Log
5
+
6
+ extend ActiveSupport::Concern
7
+ included do
8
+ around_action :global_request_logging
9
+ end
10
+
11
+ def global_request_logging
12
+ #logger.info "USERAGENT: #{request.headers['HTTP_USER_AGENT']}"
13
+ begin
14
+ yield
15
+ ensure
16
+ #logger.info "response_status: #{response.status}"
17
+ end
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,41 @@
1
+ module Forcast
2
+ module Application
3
+ module Login
4
+
5
+ def require_login!
6
+ authenticate_token
7
+ end
8
+
9
+ def require_admin!
10
+ raise Application::Error::General.new(t("required_admin")) unless current_user.class.name == ENV('login_admin')
11
+ end
12
+
13
+ def current_user
14
+ @current_user
15
+ end
16
+
17
+ private
18
+
19
+ def authenticate_token
20
+ headers_require
21
+ authenticate_with_http_token do |token, options|
22
+ models = ENV('login_models').split(":")
23
+ models.each do |model|
24
+ next if @current_user
25
+ @current_user = model.classify.constantize.where(auth_token: token).first
26
+ end
27
+ raise Application::Error::General.new(t("error_with_auth")) unless @current_user
28
+ raise Application::Error::General.new(t("token_expire")) if @current_user[:token_created_at] < ENV('login_expire_session').to_i.send(ENV('login_time_expire_session')).ago
29
+ @current_user.update_columns(Hash["last_connection", DateTime.now]) if @current_user
30
+ return @current_user
31
+ end
32
+ end
33
+
34
+ def headers_require
35
+ auth = request.headers["Authorization"]
36
+ raise Application::Error::General.new(t("error_with_headers")) if auth.nil?
37
+ end
38
+
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,61 @@
1
+ require 'active_support'
2
+ module Forcast
3
+ module Application
4
+ module Meta
5
+
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+
10
+
11
+ end
12
+
13
+ class MetaRelation
14
+ attr_accessor :class_name
15
+ attr_accessor :belongs_to
16
+ attr_accessor :has_many
17
+
18
+ def initialize(e)
19
+ self.class_name = e.to_s
20
+ self.belongs_to = e.reflect_on_all_associations(:belongs_to).map { |e| e.name.to_s }
21
+ self.has_many = e.reflect_on_all_associations(:has_many).map { |e| e.name.to_s }
22
+ #e.includes(self.belongs_to + self.has_many)
23
+ end
24
+
25
+ def has_relation(model)
26
+ rel = Hash.new
27
+ rel[:has_relation] = {}
28
+ rel[:has_relation][:belongs_to] = []
29
+ rel[:has_relation][:has_many] = []
30
+ self.belongs_to.each do |relation|
31
+ object = model.send(relation)
32
+ unless object.blank?
33
+ sender = [object].map {|e| e}
34
+ #object.is_a?(Array) ? sender = object.map {|e| e.as_json["id"]} : sender = [object].map {|e| e.as_json["id"]}
35
+ rel[:has_relation][:belongs_to].push({related_to: relation.to_s.pluralize, label: relation.to_s.pluralize.capitalize, ids: sender})
36
+ end
37
+ end
38
+ self.has_many.each do |relation|
39
+ object = model.send(relation)
40
+ ##Return 'Array' Coleection Proxy
41
+ unless object.blank?
42
+ sender = object.map {|e| e}
43
+ #object.is_a?(Array) ? sender = object.map {|e| e.as_json["id"]} : sender = [object].map {|e| e.as_json["id"]}
44
+ rel[:has_relation][:has_many].push({related_to: relation.to_s.pluralize, label: relation.to_s.pluralize.capitalize, ids: sender})
45
+ end
46
+ end
47
+ return rel
48
+ end
49
+
50
+ def egear_load(model)
51
+ model.includes(self.belongs_to + self.has_many)
52
+ end
53
+
54
+ # def meta_child(model)
55
+ # {hasChild: [{ relatedTo: "plants", childResource: "edificio"}]}
56
+ # end
57
+
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,17 @@
1
+ module Forcast
2
+ module Application
3
+ module Model
4
+
5
+ def model
6
+ @model ||= controller_name.classify.constantize
7
+ end
8
+
9
+ def set_model_id
10
+ #instance_variable_set("@#{c.chomp('s')}", model.find(params[:id]))
11
+ return if params[:id_mongo] #This is for mongo db or another database
12
+ @model_id ||= model.find(params[:id])
13
+ end
14
+
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,27 @@
1
+ module Forcast
2
+ module Application
3
+ module Permitirtodo
4
+
5
+ def params_permitidos_enviar
6
+ return params_permitidos_enviar = controller_name.classify.constantize.column_names + assoc
7
+ end
8
+
9
+ def params_permitidos_update
10
+ return params_permitidos_update = controller_name.classify.constantize.column_names + assoc
11
+ end
12
+
13
+ def params_permitidos_buscar
14
+ return params_permitidos_buscar = controller_name.classify.constantize.column_names + assoc
15
+ end
16
+
17
+ def assoc
18
+ nn = []
19
+ controller_name.classify.constantize.reflect_on_all_associations(:belongs_to).each do |x|
20
+ nn = nn.push(x.name.to_s + '_id')
21
+ end
22
+ return nn
23
+ end
24
+
25
+ end
26
+ end
27
+ end