Module: T::RequestableAPI::ListEndpoints

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

Instance Method Summary collapse

Instance Method Details

#x_add_list_members(list_name, users) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/t/requestable_api/list_endpoints.rb', line 34

def x_add_list_members(list_name, users)
  list_id = resolve_list_id(current_user_id, list_name.to_s)
  Array(users).flatten.each do |entry|
    t_post_v2_json("lists/#{list_id}/members", user_id: resolve_user_id(entry))
  end
  true
end

#x_create_list(name, opts = {}) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/t/requestable_api/list_endpoints.rb', line 19

def x_create_list(name, opts = {})
  body = {
    name: name.to_s,
    description: opts[:description].to_s,
    private: opts[:mode].to_s == "private",
  }
  extract_lists(t_post_v2_json("lists", body)).first || {}
end

#x_destroy_list(list) ⇒ Object



28
29
30
31
32
# File 'lib/t/requestable_api/list_endpoints.rb', line 28

def x_destroy_list(list)
  list_id = entity_like?(list) ? value_id(list) : list.to_s
  t_delete_v2("lists/#{list_id}")
  true
end

#x_list(owner_or_id, list_name = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/t/requestable_api/list_endpoints.rb', line 9

def x_list(owner_or_id, list_name = nil)
  list_id = if list_name.nil?
    numeric_identifier?(owner_or_id) ? owner_or_id.to_s : resolve_list_id(current_user_id, owner_or_id.to_s)
  else
    owner_id = numeric_identifier?(owner_or_id) ? owner_or_id.to_s : resolve_user_id(owner_or_id)
    resolve_list_id(owner_id, list_name.to_s)
  end
  extract_lists(t_get_v2("lists/#{list_id}", list_lookup_params)).first || {}
end

#x_list_member?(owner, list_name, user) ⇒ Boolean

Returns:

  • (Boolean)


50
51
52
53
54
55
# File 'lib/t/requestable_api/list_endpoints.rb', line 50

def x_list_member?(owner, list_name, user)
  owner_id = numeric_identifier?(owner) ? owner.to_s : resolve_user_id(owner)
  list_id = resolve_list_id(owner_id, list_name.to_s)
  user_id = resolve_user_id(user)
  fetch_list_member_ids(list_id).include?(user_id.to_s)
end

#x_list_members(owner, list_name) ⇒ Object



57
58
59
60
61
# File 'lib/t/requestable_api/list_endpoints.rb', line 57

def x_list_members(owner, list_name)
  owner_id = numeric_identifier?(owner) ? owner.to_s : resolve_user_id(owner)
  list_id = resolve_list_id(owner_id, list_name)
  lookup_users_by_ids(fetch_list_member_ids(list_id))
end

#x_list_timeline(owner, list_name, opts = {}) ⇒ Object



63
64
65
66
67
# File 'lib/t/requestable_api/list_endpoints.rb', line 63

def x_list_timeline(owner, list_name, opts = {})
  owner_id = numeric_identifier?(owner) ? owner.to_s : resolve_user_id(owner)
  list_id = resolve_list_id(owner_id, list_name)
  extract_tweets(t_get_v2("lists/#{list_id}/tweets", timeline_v2_params(opts)))
end

#x_lists(user = nil) ⇒ Object



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

def x_lists(user = nil)
  user_id = user.nil? ? current_user_id : resolve_user_id(user)
  collect_owned_lists(user_id)
end

#x_remove_list_members(list_name, users) ⇒ Object



42
43
44
45
46
47
48
# File 'lib/t/requestable_api/list_endpoints.rb', line 42

def x_remove_list_members(list_name, users)
  list_id = resolve_list_id(current_user_id, list_name.to_s)
  Array(users).flatten.each do |entry|
    t_delete_v2("lists/#{list_id}/members/#{resolve_user_id(entry)}")
  end
  true
end