Class: PostProxy::Resources::Queues

Inherits:
Object
  • Object
show all
Defined in:
lib/postproxy/resources/queues.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Queues

Returns a new instance of Queues.



4
5
6
# File 'lib/postproxy/resources/queues.rb', line 4

def initialize(client)
  @client = client
end

Instance Method Details

#create(name, profile_group_id:, description: nil, timezone: nil, jitter: nil, timeslots: nil) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/postproxy/resources/queues.rb', line 24

def create(name, profile_group_id:, description: nil, timezone: nil, jitter: nil, timeslots: nil)
  post_queue = { name: name }
  post_queue[:description] = description if description
  post_queue[:timezone] = timezone if timezone
  post_queue[:jitter] = jitter unless jitter.nil?
  post_queue[:queue_timeslots_attributes] = timeslots if timeslots

  json_body = {
    profile_group_id: profile_group_id,
    post_queue: post_queue,
  }

  result = @client.request(:post, "/post_queues", json: json_body)
  Queue.new(**result)
end

#delete(id) ⇒ Object



55
56
57
58
# File 'lib/postproxy/resources/queues.rb', line 55

def delete(id)
  result = @client.request(:delete, "/post_queues/#{id}")
  DeleteResponse.new(**result)
end

#get(id) ⇒ Object



14
15
16
17
# File 'lib/postproxy/resources/queues.rb', line 14

def get(id)
  result = @client.request(:get, "/post_queues/#{id}")
  Queue.new(**result)
end

#list(profile_group_id: nil) ⇒ Object



8
9
10
11
12
# File 'lib/postproxy/resources/queues.rb', line 8

def list(profile_group_id: nil)
  result = @client.request(:get, "/post_queues", profile_group_id: profile_group_id)
  queues = (result[:data] || []).map { |q| Queue.new(**q) }
  ListResponse.new(data: queues)
end

#next_slot(id) ⇒ Object



19
20
21
22
# File 'lib/postproxy/resources/queues.rb', line 19

def next_slot(id)
  result = @client.request(:get, "/post_queues/#{id}/next_slot")
  NextSlotResponse.new(**result)
end

#update(id, name: nil, description: nil, timezone: nil, enabled: nil, jitter: nil, timeslots: nil) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/postproxy/resources/queues.rb', line 40

def update(id, name: nil, description: nil, timezone: nil, enabled: nil, jitter: nil, timeslots: nil)
  post_queue = {}
  post_queue[:name] = name unless name.nil?
  post_queue[:description] = description unless description.nil?
  post_queue[:timezone] = timezone unless timezone.nil?
  post_queue[:enabled] = enabled unless enabled.nil?
  post_queue[:jitter] = jitter unless jitter.nil?
  post_queue[:queue_timeslots_attributes] = timeslots if timeslots

  json_body = { post_queue: post_queue }

  result = @client.request(:patch, "/post_queues/#{id}", json: json_body)
  Queue.new(**result)
end