Sha256: d4b185641b50ed05ff0cdf07837828737bb16293a415569995f844ff652e4c71

Contents?: true

Size: 1.36 KB

Versions: 198

Compression:

Stored size: 1.36 KB

Contents

module ForestLiana
  class IntercomConversationsGetter < IntegrationBaseGetter
    def initialize(params)
      @params = params
      @access_token = ForestLiana.integrations[:intercom][:access_token]
      @intercom = ::Intercom::Client.new(token: @access_token)
    end

    def count
      @records.count
    end

    def records
      @records[pagination].map do |conversation|
        if conversation.assignee.is_a?(::Intercom::Admin)
          admins = @intercom.admins.all.detect(id: conversation.assignee.id)
          conversation.assignee = admins.first
        end
        conversation
      end
    end

    def perform
      begin
        resource = collection.find(@params[:id])
        @records = @intercom.conversations.find_all(
          email: resource.email,
          type: 'user',
          display_as: 'plaintext',
        ).entries
      rescue Intercom::ResourceNotFound
        @records = []
      rescue Intercom::UnexpectedError => exception
        FOREST_LOGGER.error "Cannot retrieve the Intercom conversations: #{exception.message}"
        @records = []
      end
    end

    private

    def pagination
      offset..(offset + limit - 1)
    end

    def offset
      return 0 unless pagination?

      number = @params[:page][:number]
      if number && number.to_i > 0
        (number.to_i - 1) * limit
      else
        0
      end
    end
  end
end

Version data entries

198 entries across 198 versions & 1 rubygems

Version Path
forest_liana-7.3.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.6.3 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.2.2 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.2.1 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.2.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.1.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.2 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.1 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0.beta.6 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0.beta.5 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0.beta.4 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0.beta.3 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.6.2 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.6.1 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.6.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.5.1 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-7.0.0.beta.2 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.5.0 app/services/forest_liana/intercom_conversations_getter.rb
forest_liana-6.4.1 app/services/forest_liana/intercom_conversations_getter.rb