1 module vksdk.queries.users.UsersGetQuery;
2 
3 import vksdk.client.AbstractQueryBuilder;
4 import vksdk.client.VkApiClient;
5 import vksdk.queries.users.UserField;
6 import vksdk.objects.users.UserXtrCounters;
7 
8 /**
9  * Query for Users.get method
10  */
11 class UsersGetQuery : AbstractQueryBuilder!(UsersGetQuery, UserXtrCounters[]) {
12 
13     /**
14      * Creates a AbstractQueryBuilder instance that can be used to build api request with various parameters
15      *
16      * @param client VK API client
17      * @param actor  actor with access token
18      */
19     this(VkApiClient client, UserActor actor) {
20         super(client, "users.get");
21         accessToken(actor.getAccessToken());
22     }
23 
24     /**
25      * Creates a AbstractQueryBuilder instance that can be used to build api request with various parameters
26      *
27      * @param client VK API client
28      */
29     this(VkApiClient client) {
30         super(client, "users.get");
31     }
32 
33     /**
34      * User IDs or screen names ("screen_name"). By default, current user ID.
35      *
36      * @param value value of "user ids" parameter.
37      * @return a reference to this {@code AbstractQueryBuilder} object to fulfill the "Builder" pattern.
38      */
39     UsersGetQuery userIds(A...)(string value) {
40         return unsafeParam("user_ids", value);
41     }
42 
43     /**
44      * User IDs or screen names ("screen_name"). By default, current user ID.
45      *
46      * @param value value of "user ids" parameter.
47      * @return a reference to this {@code AbstractQueryBuilder} object to fulfill the "Builder" pattern.
48      */
49     UsersGetQuery userIds(string[] value) {
50         return unsafeParam("user_ids", value);
51     }
52 
53     /**
54      * Profile fields to return.
55      *
56      * @param value value of "fields" parameter.
57      * @return a reference to this {@code AbstractQueryBuilder} object to fulfill the "Builder" pattern.
58      */
59     UsersGetQuery fields(A...)(UserField value) {
60         return unsafeParam("fields", value);
61     }
62 
63     /**
64      * Profile fields to return.
65      *
66      * @param value value of "fields" parameter.
67      * @return a reference to this {@code AbstractQueryBuilder} object to fulfill the "Builder" pattern.
68      */
69     UsersGetQuery fields(UserField[] value) {
70         return unsafeParam("fields", value);
71     }
72 
73     /**
74      * Case for declension of user name and surname
75      *
76      * @param value value of "name case" parameter.
77      * @return a reference to this {@code AbstractQueryBuilder} object to fulfill the "Builder" pattern.
78      */
79     UsersGetQuery nameCase(UsersNameCase value) {
80         return unsafeParam("name_case", value);
81     }
82 
83     override protected UsersGetQuery getThis() {
84         return this;
85     }
86 
87     override protected string[] essentialKeys() {
88         return [];
89     }
90 }