forest_admin_agent 1.12.7 → 1.12.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/forest_admin_agent/routes/capabilities/collections.rb +1 -6
- data/lib/forest_admin_agent/routes/query_handler.rb +6 -6
- data/lib/forest_admin_agent/routes/resources/native_query.rb +1 -0
- data/lib/forest_admin_agent/utils/context_variables_injector.rb +1 -2
- data/lib/forest_admin_agent/utils/schema/schema_emitter.rb +1 -1
- data/lib/forest_admin_agent/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 98c689bf74a3f3bf3dd9cab8747d0e0a526b8b7a1e7de3d43133312cf269b755
         | 
| 4 | 
            +
              data.tar.gz: 6ef3e6ed4018298169d19d9eac6d6e4767695ebe372839319753d967e8c48471
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5eb4c1f3f0cc477a2debc4191d18f191454afb628b15130b9365d1aaef78f88d5a1721ffc3fb17e3b3980a2e7c9f8b8dc3f54626f9130092ae09c142379d3aa6
         | 
| 7 | 
            +
              data.tar.gz: 8c9cf757c454036b80b70ef7e1e7aa2646e2c6abd172f09a1a569ea81cff3200e7010f200afb55d600a75a8e1be9a828fc27baff52e4d77af6e1fa58a348dddb
         | 
| @@ -18,12 +18,7 @@ module ForestAdminAgent | |
| 18 18 | 
             
                      @datasource = ForestAdminAgent::Facades::Container.datasource
         | 
| 19 19 | 
             
                      collections = args[:params]['collectionNames'] || []
         | 
| 20 20 |  | 
| 21 | 
            -
                      connections =  | 
| 22 | 
            -
                      ForestAdminAgent::Builder::AgentFactory.instance.customizer.datasources.map do |root_datasource|
         | 
| 23 | 
            -
                        connections = connections.union(
         | 
| 24 | 
            -
                          root_datasource.live_query_connections.keys.map { |connection_name| { name: connection_name } }
         | 
| 25 | 
            -
                        )
         | 
| 26 | 
            -
                      end
         | 
| 21 | 
            +
                      connections = @datasource.live_query_connections.keys.map { |connection_name| { name: connection_name } }
         | 
| 27 22 |  | 
| 28 23 | 
             
                      result = collections.map do |collection_name|
         | 
| 29 24 | 
             
                        collection = @datasource.get_collection(collection_name)
         | 
| @@ -6,21 +6,20 @@ module ForestAdminAgent | |
| 6 6 | 
             
                  include ForestAdminDatasourceToolkit::Components::Query
         | 
| 7 7 | 
             
                  include ForestAdminDatasourceToolkit::Validations
         | 
| 8 8 |  | 
| 9 | 
            -
                  def inject_context_variables(connection_name, query, permissions, caller, context_variables)
         | 
| 9 | 
            +
                  def inject_context_variables(datasource, connection_name, query, permissions, caller, context_variables)
         | 
| 10 10 | 
             
                    user = permissions.get_user_data(caller.id)
         | 
| 11 11 | 
             
                    team = permissions.get_team(caller.rendering_id)
         | 
| 12 12 | 
             
                    context_variables = ContextVariables.new(team, user, context_variables)
         | 
| 13 13 |  | 
| 14 | 
            -
                    ContextVariablesInjector.inject_context_in_native_query(connection_name, query, context_variables)
         | 
| 14 | 
            +
                    ContextVariablesInjector.inject_context_in_native_query(datasource, connection_name, query, context_variables)
         | 
| 15 15 | 
             
                  end
         | 
| 16 16 |  | 
| 17 | 
            -
                  def execute_query(query, connection_name, permissions, caller, context_variables)
         | 
| 18 | 
            -
                    root_datasource = AgentFactory.instance.customizer.get_root_datasource_by_connection(connection_name)
         | 
| 17 | 
            +
                  def execute_query(datasource, query, connection_name, permissions, caller, context_variables)
         | 
| 19 18 | 
             
                    query = query.strip
         | 
| 20 | 
            -
                    query, context_variables = inject_context_variables(connection_name, query, permissions, caller,
         | 
| 19 | 
            +
                    query, context_variables = inject_context_variables(datasource, connection_name, query, permissions, caller,
         | 
| 21 20 | 
             
                                                                        context_variables)
         | 
| 22 21 |  | 
| 23 | 
            -
                     | 
| 22 | 
            +
                    datasource.execute_native_query(
         | 
| 24 23 | 
             
                      connection_name,
         | 
| 25 24 | 
             
                      query,
         | 
| 26 25 | 
             
                      context_variables.values
         | 
| @@ -39,6 +38,7 @@ module ForestAdminAgent | |
| 39 38 | 
             
                    permissions.can_execute_query_segment?(collection, args[:params][:segmentQuery], args[:params][:connectionName])
         | 
| 40 39 |  | 
| 41 40 | 
             
                    ids = execute_query(
         | 
| 41 | 
            +
                      collection.datasource,
         | 
| 42 42 | 
             
                      args[:params][:segmentQuery],
         | 
| 43 43 | 
             
                      args[:params][:connectionName],
         | 
| 44 44 | 
             
                      permissions,
         | 
| @@ -12,12 +12,11 @@ module ForestAdminAgent | |
| 12 12 | 
             
                    end
         | 
| 13 13 | 
             
                  end
         | 
| 14 14 |  | 
| 15 | 
            -
                  def self.inject_context_in_native_query(connection_name, query, context_variables)
         | 
| 15 | 
            +
                  def self.inject_context_in_native_query(datasource, connection_name, query, context_variables)
         | 
| 16 16 | 
             
                    return query unless query.is_a?(String)
         | 
| 17 17 |  | 
| 18 18 | 
             
                    query_with_context_variables_injected = query
         | 
| 19 19 | 
             
                    encountered_variables = {}
         | 
| 20 | 
            -
                    datasource = AgentFactory.instance.customizer.get_root_datasource_by_connection(connection_name)
         | 
| 21 20 |  | 
| 22 21 | 
             
                    while (match = REGEX.match(query_with_context_variables_injected))
         | 
| 23 22 | 
             
                      context_variable_key = match[1]
         |