Module: T::RequestableAPI::DMEndpoints

Included in:
T::RequestableAPI
Defined in:
lib/t/requestable_api/dm_endpoints.rb

Instance Method Summary collapse

Instance Method Details

#x_create_direct_message_event(recipient, message) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/t/requestable_api/dm_endpoints.rb', line 25

def x_create_direct_message_event(recipient, message)
  target = entity_like?(recipient) ? recipient["id"].to_s : resolve_user_id(recipient)
  response = t_post_v2_json("dm_conversations/with/#{target}/messages", text: message.to_s)
  id = value_id(response) || value_id(response["data"])
  {"id" => id.to_i, "id_str" => id.to_s, "text" => message.to_s,
   "full_text" => message.to_s, "recipient_id" => target, "recipient" => x_user(target)}
end

#x_destroy_direct_message(*direct_message_ids) ⇒ Object



33
34
35
36
37
38
# File 'lib/t/requestable_api/dm_endpoints.rb', line 33

def x_destroy_direct_message(*direct_message_ids)
  normalize_id_list(direct_message_ids.flatten).each do |id|
    t_delete_v2("dm_events/#{id}")
  end
  true
end

#x_direct_message(id) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/t/requestable_api/dm_endpoints.rb', line 12

def x_direct_message(id)
  response = t_get_v2("dm_events/#{id}", dm_v2_params)
  events = extract_dm_events(response)
  events = [response["data"]] if events.empty? && response["data"].is_a?(Hash)
  return nil if events.empty?

  users_by_id = extract_dm_users_by_id(response)
  me_id = current_user_id
  normalize_dm_event(events.first, users_by_id, me_id, dm_sender_id(events.first) == me_id)
rescue X::NotFound
  nil
end

#x_direct_messages_received(opts = {}) ⇒ Object



4
5
6
# File 'lib/t/requestable_api/dm_endpoints.rb', line 4

def x_direct_messages_received(opts = {})
  direct_messages_for(false, opts)
end

#x_direct_messages_sent(opts = {}) ⇒ Object



8
9
10
# File 'lib/t/requestable_api/dm_endpoints.rb', line 8

def x_direct_messages_sent(opts = {})
  direct_messages_for(true, opts)
end