Sha256: 4be14a8d0f5ea0405d6c164b12ebc72726a5e6f85dd170422897a565eb4b1688

Contents?: true

Size: 1.32 KB

Versions: 2

Compression:

Stored size: 1.32 KB

Contents

# frozen_string_literal: true

module TwilioBase
  module Fake
    module TaskRouter
      class Worker
        Worker = Struct.new(
          :sid,
          :friendly_name,
          :activity_sid,
          :attributes,
          :activity_name,
          :available,
          :date_status_changed
        ) do
          def delete
            self
          end

          def update(_attributes = {})
            self
          end
        end

        cattr_accessor :sid, :workers
        self.workers = []

        def initialize(sid = nil)
          self.sid = sid || FactoryBot.generate(:worker_sid)
        end

        def create(attributes)
          worker = Worker.new(
            sid,
            attributes[:friendly_name],
            attributes[:activity_sid],
            attributes[:attributes],
            attributes[:activity_name],
            attributes[:available],
            attributes[:date_status_changed]
          )
          self.class.workers << worker
          worker
        end

        def fetch
          workers.detect { |worker| worker.sid == sid }
        end

        def list(_attributes = {})
          workers
        end

        def update(_attributes = {})
          self
        end

        def worker_channels(name = nil)
          Channel.new(name)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
twilio_base-1.9.0 spec/support/twilio_base/fake/task_router/worker.rb
twilio_base-1.8.0 spec/support/twilio_base/fake/task_router/worker.rb