Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
namara / lib / exports.rb
Size: Mime:
require_relative 'rpc/exports/exports_twirp'

class Namara
  def create_export(query_string, filename)
    payload = { query: query_string, file_name: filename }

    response = rpc_request(export_client) do |client|
      client.create_export(payload, rpc_headers)
    end

    # returning export response as hash
    OpenStruct.new(response.data.export.to_h)
  end

  # the data here returns export and file_url
  def get_export(export_id)
    payload = { id: export_id }

    response = rpc_request(export_client) do |client|
      client.get_export(payload, rpc_headers)
    end

    OpenStruct.new(response.data.to_h)
  end

  def list_exports(filter = {})
    payload = {
        filter: {
            offset: { value: filter.fetch(:offset, nil) },
            limit:  { value: filter.fetch(:limit, nil) }
        }
    }

    response = rpc_request(export_client) do |client|
      client.list_exports(payload, rpc_headers)
    end

    OpenStruct.new(exports: ObjectToHash.to_hash_array(response.data.exports.to_a), total_count: response.data.total_count)
  end

  # returns empty
  def delete_export(export_id)
    payload = { id: export_id }

    rpc_request(export_client) do |client|
      client.delete_export(payload, rpc_headers)
    end
  end

  private

  def export_client
    @export_client ||= Exports::ExportsServiceClient.new(api_url)
  end
end