1package anaconda
2
3import (
4	"net/url"
5	"strconv"
6)
7
8func (a TwitterApi) GetUsersLookup(usernames string, v url.Values) (u []User, err error) {
9	v = cleanValues(v)
10	v.Set("screen_name", usernames)
11	response_ch := make(chan response)
12	a.queryQueue <- query{a.baseUrl + "/users/lookup.json", v, &u, _GET, response_ch}
13	return u, (<-response_ch).err
14}
15
16func (a TwitterApi) GetUsersLookupByIds(ids []int64, v url.Values) (u []User, err error) {
17	var pids string
18	for w, i := range ids {
19		//pids += strconv.Itoa(i)
20		pids += strconv.FormatInt(i, 10)
21		if w != len(ids)-1 {
22			pids += ","
23		}
24	}
25	v = cleanValues(v)
26	v.Set("user_id", pids)
27	response_ch := make(chan response)
28	a.queryQueue <- query{a.baseUrl + "/users/lookup.json", v, &u, _GET, response_ch}
29	return u, (<-response_ch).err
30}
31
32func (a TwitterApi) GetUsersShow(username string, v url.Values) (u User, err error) {
33	v = cleanValues(v)
34	v.Set("screen_name", username)
35	response_ch := make(chan response)
36	a.queryQueue <- query{a.baseUrl + "/users/show.json", v, &u, _GET, response_ch}
37	return u, (<-response_ch).err
38}
39
40func (a TwitterApi) GetUsersShowById(id int64, v url.Values) (u User, err error) {
41	v = cleanValues(v)
42	v.Set("user_id", strconv.FormatInt(id, 10))
43	response_ch := make(chan response)
44	a.queryQueue <- query{a.baseUrl + "/users/show.json", v, &u, _GET, response_ch}
45	return u, (<-response_ch).err
46}
47
48func (a TwitterApi) GetUserSearch(searchTerm string, v url.Values) (u []User, err error) {
49	v = cleanValues(v)
50	v.Set("q", searchTerm)
51	// Set other values before calling this method:
52	// page, count, include_entities
53	response_ch := make(chan response)
54	a.queryQueue <- query{a.baseUrl + "/users/search.json", v, &u, _GET, response_ch}
55	return u, (<-response_ch).err
56}
57
58func (a TwitterApi) GetUsersSuggestions(v url.Values) (u []User, err error) {
59	v = cleanValues(v)
60	// Set other values before calling this method:
61	// page, count, include_entities
62	response_ch := make(chan response)
63	a.queryQueue <- query{a.baseUrl + "/users/suggestions.json", v, &u, _GET, response_ch}
64	return u, (<-response_ch).err
65}
66
67// PostUsersReportSpam : Reports and Blocks a User by screen_name
68// Reference : https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam
69// If you don't want to block the user you should add
70// v.Set("perform_block", "false")
71func (a TwitterApi) PostUsersReportSpam(username string, v url.Values) (u User, err error) {
72	v = cleanValues(v)
73	v.Set("screen_name", username)
74	response_ch := make(chan response)
75	a.queryQueue <- query{a.baseUrl + "/users/report_spam.json", v, &u, _POST, response_ch}
76	return u, (<-response_ch).err
77}
78
79// PostUsersReportSpamById : Reports and Blocks a User by user_id
80// Reference : https://developer.twitter.com/en/docs/accounts-and-users/mute-block-report-users/api-reference/post-users-report_spam
81// If you don't want to block the user you should add
82// v.Set("perform_block", "false")
83func (a TwitterApi) PostUsersReportSpamById(id int64, v url.Values) (u User, err error) {
84	v = cleanValues(v)
85	v.Set("user_id", strconv.FormatInt(id, 10))
86	response_ch := make(chan response)
87	a.queryQueue <- query{a.baseUrl + "/users/report_spam.json", v, &u, _POST, response_ch}
88	return u, (<-response_ch).err
89}
90