sidechat.js 2.3.8 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/classes/SidechatAPIClient.d.ts +17 -2
  2. package/dist/classes/SidechatAPIClient.d.ts.map +1 -1
  3. package/dist/index.cjs +99 -92
  4. package/dist/index.mjs +99 -92
  5. package/docs/sidechat.js/2.4.0/SidechatAPIClient.html +3 -0
  6. package/docs/sidechat.js/{2.3.8 → 2.4.0}/classes_SidechatAPIClient.js.html +95 -91
  7. package/docs/sidechat.js/2.4.0/data/search.json +1 -0
  8. package/package.json +54 -54
  9. package/src/classes/SidechatAPIClient.js +99 -92
  10. package/src/tests/postTest.js +2 -1
  11. package/docs/sidechat.js/2.3.8/SidechatAPIClient.html +0 -3
  12. package/docs/sidechat.js/2.3.8/data/search.json +0 -1
  13. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/SidechatAPIError.html +0 -0
  14. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/SidechatColorList.html +0 -0
  15. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/classes_SidechatAPIError.js.html +0 -0
  16. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/classes_SidechatColorList.js.html +0 -0
  17. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/fonts/Inconsolata-Regular.ttf +0 -0
  18. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/fonts/OpenSans-Regular.ttf +0 -0
  19. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/fonts/WorkSans-Bold.ttf +0 -0
  20. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/global.html +0 -0
  21. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/index.html +0 -0
  22. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/core.js +0 -0
  23. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/core.min.js +0 -0
  24. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/resize.js +0 -0
  25. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/search.js +0 -0
  26. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/search.min.js +0 -0
  27. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/Apache-License-2.0.txt +0 -0
  28. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/fuse.js +0 -0
  29. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/hljs-line-num-original.js +0 -0
  30. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/hljs-line-num.js +0 -0
  31. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/hljs-original.js +0 -0
  32. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/hljs.js +0 -0
  33. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/popper.js +0 -0
  34. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/tippy.js +0 -0
  35. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/tocbot.js +0 -0
  36. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/scripts/third-party/tocbot.min.js +0 -0
  37. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/styles/clean-jsdoc-theme-base.css +0 -0
  38. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/styles/clean-jsdoc-theme-dark.css +0 -0
  39. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/styles/clean-jsdoc-theme-light.css +0 -0
  40. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/styles/clean-jsdoc-theme.min.css +0 -0
  41. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/tutorial-Authentication.html +0 -0
  42. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/tutorial-Email Registration.html +0 -0
  43. /package/docs/sidechat.js/{2.3.8 → 2.4.0}/types_SidechatTypes.js.html +0 -0
package/dist/index.mjs CHANGED
@@ -21,6 +21,7 @@ class SidechatAPIClient {
21
21
  * @type {SidechatAuthToken}
22
22
  * */
23
23
  userToken;
24
+
24
25
  /**
25
26
  * Default headers for every API request
26
27
  * @type {Object}
@@ -34,14 +35,25 @@ class SidechatAPIClient {
34
35
  Dnt: 1,
35
36
  };
36
37
 
38
+ /**
39
+ * Root URL for every API request
40
+ * @type {String}
41
+ * @default "https://api.sidechat.lol"
42
+ */
43
+ apiRoot = "https://api.sidechat.lol";
44
+
37
45
  /**
38
46
  * Create a new instance of the API client
39
47
  * @param {SidechatAuthToken} [token] - user bearer token
48
+ * @param {String} rootUrl - custom API root URL for mocking or using other server
40
49
  */
41
- constructor(token = "") {
50
+ constructor(token = "", rootUrl = "") {
42
51
  if (token) {
43
52
  this.userToken = token;
44
53
  }
54
+ if (rootUrl) {
55
+ this.apiRoot = rootUrl;
56
+ }
45
57
  }
46
58
 
47
59
  /**
@@ -53,6 +65,16 @@ class SidechatAPIClient {
53
65
  this.userToken = token;
54
66
  };
55
67
 
68
+ /**
69
+ * Manually set the root URL for all API requests. This can be used for mocking requests or redirecting them to a different server
70
+ * @method
71
+ * @param {String} url - new root URL to set
72
+ * @since 2.3.9
73
+ */
74
+ setAPIRoot = (url) => {
75
+ this.apiRoot = url;
76
+ };
77
+
56
78
  /**
57
79
  * Initiate the login process with a phone number. Should be followed up with verifySMSCode().
58
80
  * @method
@@ -61,7 +83,7 @@ class SidechatAPIClient {
61
83
  */
62
84
  loginViaSMS = async (phoneNumber) => {
63
85
  try {
64
- const res = await fetch(`https://api.sidechat.lol/v1/login_register`, {
86
+ const res = await fetch(`${this.apiRoot}/v1/login_register`, {
65
87
  method: "POST",
66
88
  headers: this.defaultHeaders,
67
89
  body: JSON.stringify({
@@ -86,17 +108,14 @@ class SidechatAPIClient {
86
108
  */
87
109
  verifySMSCode = async (phoneNumber, code) => {
88
110
  try {
89
- const res = await fetch(
90
- `https://api.sidechat.lol/v1/verify_phone_number`,
91
- {
92
- method: "POST",
93
- headers: this.defaultHeaders,
94
- body: JSON.stringify({
95
- phone_number: `+1${phoneNumber}`,
96
- code: code.toUpperCase(),
97
- }),
98
- }
99
- );
111
+ const res = await fetch(`${this.apiRoot}/v1/verify_phone_number`, {
112
+ method: "POST",
113
+ headers: this.defaultHeaders,
114
+ body: JSON.stringify({
115
+ phone_number: `+1${phoneNumber}`,
116
+ code: code.toUpperCase(),
117
+ }),
118
+ });
100
119
  const json = await res.json();
101
120
  if (json?.logged_in_user?.token) {
102
121
  this.userToken = json.logged_in_user.token;
@@ -120,17 +139,14 @@ class SidechatAPIClient {
120
139
  throw new SidechatAPIError("You're too young to use Offsides.");
121
140
  }
122
141
  try {
123
- const res = await fetch(
124
- `https://api.sidechat.lol/v1/complete_registration`,
125
- {
126
- method: "POST",
127
- headers: this.defaultHeaders,
128
- body: JSON.stringify({
129
- age: Number(age),
130
- registration_id: registrationID,
131
- }),
132
- }
133
- );
142
+ const res = await fetch(`${this.apiRoot}/v1/complete_registration`, {
143
+ method: "POST",
144
+ headers: this.defaultHeaders,
145
+ body: JSON.stringify({
146
+ age: Number(age),
147
+ registration_id: registrationID,
148
+ }),
149
+ });
134
150
  const json = await res.json();
135
151
  if (json.token) {
136
152
  this.userToken = json.token;
@@ -154,19 +170,16 @@ class SidechatAPIClient {
154
170
  throw new SidechatAPIError("User is not authenticated.");
155
171
  }
156
172
  try {
157
- const res = await fetch(
158
- `https://api.sidechat.lol/v2/users/register_email`,
159
- {
160
- method: "POST",
161
- headers: {
162
- ...this.defaultHeaders,
163
- Authorization: `Bearer ${this.userToken}`,
164
- },
165
- body: JSON.stringify({
166
- email: email,
167
- }),
168
- }
169
- );
173
+ const res = await fetch(`${this.apiRoot}/v2/users/register_email`, {
174
+ method: "POST",
175
+ headers: {
176
+ ...this.defaultHeaders,
177
+ Authorization: `Bearer ${this.userToken}`,
178
+ },
179
+ body: JSON.stringify({
180
+ email: email,
181
+ }),
182
+ });
170
183
  const json = await res.json();
171
184
  if (json.message) {
172
185
  throw new SidechatAPIError(json.message);
@@ -188,16 +201,13 @@ class SidechatAPIClient {
188
201
  throw new SidechatAPIError("User is not authenticated.");
189
202
  }
190
203
  try {
191
- const res = await fetch(
192
- `https://api.sidechat.lol/v1/users/check_email_verified`,
193
- {
194
- method: "GET",
195
- headers: {
196
- ...this.defaultHeaders,
197
- Authorization: `Bearer ${this.userToken}`,
198
- },
199
- }
200
- );
204
+ const res = await fetch(`${this.apiRoot}/v1/users/check_email_verified`, {
205
+ method: "GET",
206
+ headers: {
207
+ ...this.defaultHeaders,
208
+ Authorization: `Bearer ${this.userToken}`,
209
+ },
210
+ });
201
211
  const json = await res.json();
202
212
  if (json.verified_email_updates_response) {
203
213
  return json.verified_email_updates_response;
@@ -221,21 +231,18 @@ class SidechatAPIClient {
221
231
  throw new SidechatAPIError("User is not authenticated.");
222
232
  }
223
233
  try {
224
- const res = await fetch(
225
- `https://api.sidechat.lol/v1/register_device_token`,
226
- {
227
- method: "POST",
228
- headers: {
229
- ...this.defaultHeaders,
230
- Authorization: `Bearer ${this.userToken}`,
231
- },
232
- body: JSON.stringify({
233
- build_type: "release",
234
- bundle_id: "com.flowerave.sidechat",
235
- device_token: deviceID,
236
- }),
237
- }
238
- );
234
+ const res = await fetch(`${this.apiRoot}/v1/register_device_token`, {
235
+ method: "POST",
236
+ headers: {
237
+ ...this.defaultHeaders,
238
+ Authorization: `Bearer ${this.userToken}`,
239
+ },
240
+ body: JSON.stringify({
241
+ build_type: "release",
242
+ bundle_id: "com.flowerave.sidechat",
243
+ device_token: deviceID,
244
+ }),
245
+ });
239
246
  const json = await res.json();
240
247
  await AsyncStorage.setItem("deviceID", deviceID);
241
248
  return json;
@@ -269,7 +276,7 @@ class SidechatAPIClient {
269
276
  }
270
277
  try {
271
278
  const res = await fetch(
272
- `https://api.sidechat.lol/v1/updates?group_id=${groupID}`,
279
+ `${this.apiRoot}/v1/updates?group_id=${groupID}`,
273
280
  {
274
281
  method: "GET",
275
282
  headers: {
@@ -301,7 +308,7 @@ class SidechatAPIClient {
301
308
  }
302
309
  try {
303
310
  const res = await fetch(
304
- `https://api.sidechat.lol/v1/posts?group_id=${groupID}&type=${category}${
311
+ `${this.apiRoot}/v1/posts?group_id=${groupID}&type=${category}${
305
312
  cursor ? "&cursor=" + cursor : ""
306
313
  }`,
307
314
  {
@@ -332,7 +339,7 @@ class SidechatAPIClient {
332
339
  throw new SidechatAPIError("User is not authenticated.");
333
340
  }
334
341
  try {
335
- const res = await fetch(`https://api.sidechat.lol/v1/posts/set_vote`, {
342
+ const res = await fetch(`${this.apiRoot}/v1/posts/set_vote`, {
336
343
  method: "POST",
337
344
  headers: {
338
345
  ...this.defaultHeaders,
@@ -365,7 +372,7 @@ class SidechatAPIClient {
365
372
  }
366
373
  try {
367
374
  const res = await fetch(
368
- `https://api.sidechat.lol/v1/posts/get?include_deleted=${includeDeleted}&post_id=${postID}`,
375
+ `${this.apiRoot}/v1/posts/get?include_deleted=${includeDeleted}&post_id=${postID}`,
369
376
  {
370
377
  method: "GET",
371
378
  headers: {
@@ -399,16 +406,13 @@ class SidechatAPIClient {
399
406
  contentType = "my_comments";
400
407
  }
401
408
  try {
402
- const res = await fetch(
403
- `https://api.sidechat.lol/v1/posts&type=${contentType}`,
404
- {
405
- method: "GET",
406
- headers: {
407
- ...this.defaultHeaders,
408
- Authorization: `Bearer ${this.userToken}`,
409
- },
410
- }
411
- );
409
+ const res = await fetch(`${this.apiRoot}/v1/posts&type=${contentType}`, {
410
+ method: "GET",
411
+ headers: {
412
+ ...this.defaultHeaders,
413
+ Authorization: `Bearer ${this.userToken}`,
414
+ },
415
+ });
412
416
  const json = await res.json();
413
417
  return json.posts;
414
418
  } catch (err) {
@@ -430,7 +434,7 @@ class SidechatAPIClient {
430
434
  }
431
435
  try {
432
436
  const res = await fetch(
433
- `https://api.sidechat.lol/v1/posts/comments/?post_id=${postID}`,
437
+ `${this.apiRoot}/v1/posts/comments/?post_id=${postID}`,
434
438
  {
435
439
  method: "GET",
436
440
  headers: {
@@ -505,7 +509,7 @@ class SidechatAPIClient {
505
509
  throw new SidechatAPIError("User is not authenticated.");
506
510
  }
507
511
  try {
508
- const res = await fetch(`https://api.sidechat.lol/v1/groups/explore`, {
512
+ const res = await fetch(`${this.apiRoot}/v1/groups/explore`, {
509
513
  method: "GET",
510
514
  headers: {
511
515
  ...this.defaultHeaders,
@@ -532,7 +536,7 @@ class SidechatAPIClient {
532
536
  throw new SidechatAPIError("User is not authenticated.");
533
537
  }
534
538
  try {
535
- const res = await fetch(`https://api.sidechat.lol/v1/assets/library`, {
539
+ const res = await fetch(`${this.apiRoot}/v1/assets/library`, {
536
540
  method: "GET",
537
541
  headers: {
538
542
  ...this.defaultHeaders,
@@ -558,7 +562,7 @@ class SidechatAPIClient {
558
562
  throw new SidechatAPIError("User is not authenticated.");
559
563
  }
560
564
  try {
561
- const res = await fetch(`https://api.sidechat.lol/v1/users/me`, {
565
+ const res = await fetch(`${this.apiRoot}/v1/users/me`, {
562
566
  method: "GET",
563
567
  headers: {
564
568
  ...this.defaultHeaders,
@@ -585,7 +589,7 @@ class SidechatAPIClient {
585
589
  throw new SidechatAPIError("User is not authenticated.");
586
590
  }
587
591
  try {
588
- const res = await fetch(`https://api.sidechat.lol/v1/groups/${groupID}`, {
592
+ const res = await fetch(`${this.apiRoot}/v1/groups/${groupID}`, {
589
593
  method: "GET",
590
594
  headers: {
591
595
  ...this.defaultHeaders,
@@ -613,7 +617,7 @@ class SidechatAPIClient {
613
617
  }
614
618
  try {
615
619
  const res = await fetch(
616
- `https://api.sidechat.lol/v1/groups/${isMember ? "join" : "leave"}`,
620
+ `${this.apiRoot}/v1/groups/${isMember ? "join" : "leave"}`,
617
621
  {
618
622
  method: "POST",
619
623
  headers: {
@@ -643,6 +647,7 @@ class SidechatAPIClient {
643
647
  * @param {String} [replyCommentID] - alphanumeric ID of comment to reply to. Falls back to parentPostID
644
648
  * @param {SidechatSimpleAsset[]} [assetList] - list of assets to attach
645
649
  * @param {Boolean} [disableDMs] - prevent direct messages being sent to comment's author
650
+ * @param {Boolean} [anonymous] - whether or not to hide user's name and icon on comment
646
651
  * @returns {SidechatPostOrComment} created comment
647
652
  */
648
653
  createComment = async (
@@ -651,13 +656,14 @@ class SidechatAPIClient {
651
656
  groupID,
652
657
  replyCommentID = parentPostID,
653
658
  assetList = [],
654
- disableDMs = false
659
+ disableDMs = false,
660
+ anonymous = false
655
661
  ) => {
656
662
  if (!this.userToken) {
657
663
  throw new SidechatAPIError("User is not authenticated.");
658
664
  }
659
665
  try {
660
- const res = await fetch(`https://api.sidechat.lol/v1/posts`, {
666
+ const res = await fetch(`${this.apiRoot}/v1/posts`, {
661
667
  method: "POST",
662
668
  headers: {
663
669
  ...this.defaultHeaders,
@@ -671,6 +677,7 @@ class SidechatAPIClient {
671
677
  reply_post_id: replyCommentID,
672
678
  parent_post_id: parentPostID,
673
679
  dms_disabled: disableDMs,
680
+ using_identity: !anonymous,
674
681
  }),
675
682
  });
676
683
  const json = await res.json();
@@ -705,7 +712,7 @@ class SidechatAPIClient {
705
712
  throw new SidechatAPIError("User is not authenticated.");
706
713
  }
707
714
  try {
708
- const res = await fetch(`https://api.sidechat.lol/v1/posts`, {
715
+ const res = await fetch(`${this.apiRoot}/v1/posts`, {
709
716
  method: "POST",
710
717
  headers: {
711
718
  ...this.defaultHeaders,
@@ -741,7 +748,7 @@ class SidechatAPIClient {
741
748
  throw new SidechatAPIError("User is not authenticated.");
742
749
  }
743
750
  try {
744
- const res = await fetch(`https://api.sidechat.lol/v1/posts/delete`, {
751
+ const res = await fetch(`${this.apiRoot}/v1/posts/delete`, {
745
752
  method: "POST",
746
753
  headers: {
747
754
  ...this.defaultHeaders,
@@ -773,7 +780,7 @@ class SidechatAPIClient {
773
780
  throw new SidechatAPIError("User is not authenticated.");
774
781
  }
775
782
  try {
776
- const res = await fetch(`https://api.sidechat.lol/v1/users/${userID}`, {
783
+ const res = await fetch(`${this.apiRoot}/v1/users/${userID}`, {
777
784
  method: "PATCH",
778
785
  headers: {
779
786
  ...this.defaultHeaders,
@@ -810,7 +817,7 @@ class SidechatAPIClient {
810
817
  }
811
818
  try {
812
819
  const res = await fetch(
813
- `https://api.sidechat.lol/v1/users/username?username=${username}`,
820
+ `${this.apiRoot}/v1/users/username?username=${username}`,
814
821
  {
815
822
  method: "GET",
816
823
  headers: {
@@ -842,7 +849,7 @@ class SidechatAPIClient {
842
849
  throw new SidechatAPIError("User is not authenticated.");
843
850
  }
844
851
  try {
845
- const res = await fetch(`https://api.sidechat.lol/v1/users/${userID}`, {
852
+ const res = await fetch(`${this.apiRoot}/v1/users/${userID}`, {
846
853
  method: "PATCH",
847
854
  headers: {
848
855
  ...this.defaultHeaders,
@@ -871,7 +878,7 @@ class SidechatAPIClient {
871
878
  throw new SidechatAPIError("User is not authenticated.");
872
879
  }
873
880
  try {
874
- const res = await fetch(`https://api.sidechat.lol/v1/activity/seen`, {
881
+ const res = await fetch(`${this.apiRoot}/v1/activity/seen`, {
875
882
  method: "POST",
876
883
  headers: {
877
884
  ...this.defaultHeaders,
@@ -899,7 +906,7 @@ class SidechatAPIClient {
899
906
  throw new SidechatAPIError("User is not authenticated.");
900
907
  }
901
908
  try {
902
- const res = await fetch(`https://api.sidechat.lol/v1/chats/explore`, {
909
+ const res = await fetch(`${this.apiRoot}/v1/chats/explore`, {
903
910
  method: "GET",
904
911
  headers: {
905
912
  ...this.defaultHeaders,
@@ -930,7 +937,7 @@ class SidechatAPIClient {
930
937
  throw new SidechatAPIError("User is not authenticated.");
931
938
  }
932
939
  try {
933
- const res = await fetch(`https://api.sidechat.lol/v1/chats/groups/join`, {
940
+ const res = await fetch(`${this.apiRoot}/v1/chats/groups/join`, {
934
941
  method: "GET",
935
942
  headers: {
936
943
  ...this.defaultHeaders,
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Class: SidechatAPIClient</title><!--[if lt IE 9]>
2
+ <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
3
+ <![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(baseURL=(baseURL="https://micahlindley.com/sidechat.js/").replace(/https?:\/\//i,"")).substr(baseURL.indexOf("/"))</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><a href="/" class="sidebar-title sidebar-title-anchor">Home</a><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"><div class="navbar-item"><a id="" href="https://github.com/micahlt/offsides#README.md" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><header><h1 id="SidechatAPIClient-title" class="has-anchor">SidechatAPIClient</h1><div class="class-description"><p>API client class for making requests to Sidechat's private API. You'll need to <a href="tutorial-Authentication.html">authenticate</a> before using most of the methods.</p></div></header><article><div class="container-overview"><h2 id="constructor" class="has-anchor">Constructor</h2><h3 class="name has-anchor" id="SidechatAPIClient"><span class="type-signature"></span>new SidechatAPIClient<span class="signature">(token<span class="signature-attributes">opt</span>, rootUrl)</span></h3><div class="description"><p>Create a new instance of the API client</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>token</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>user bearer token</p></td></tr><tr><td class="name"><code>rootUrl</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>custom API root URL for mocking or using other server</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.0.0-alpha.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line9">line 9</a></li></ul></dd></div></dl></div><h2 id="members" class="subsection-title has-anchor">Members</h2><h3 class="name has-anchor" id="apiRoot"><span class="type-signature"></span>apiRoot<span class="type-signature"> :String</span></h3><div class="description"><p>Root URL for every API request</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">String</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-default bold">Default Value</dt><dd class="tag-default"><ul><li data-skip-pre-process="true">"https://api.sidechat.lol"</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line34">line 34</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="defaultHeaders"><span class="type-signature">(constant) </span>defaultHeaders<span class="type-signature"> :Object</span></h3><div class="description"><p>Default headers for every API request</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line22">line 22</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="userToken"><span class="type-signature"></span>userToken<span class="type-signature"> :<a href="global.html#SidechatAuthToken">SidechatAuthToken</a></span></h3><div class="description"><p>User bearer token</p></div><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></span></li></ul></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line14">line 14</a></li></ul></dd></div></dl><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="checkEmailVerification"><span class="type-signature"></span>checkEmailVerification<span class="signature">()</span></h3><div class="description"><p>Check is the user's email is verified.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line190">line 190</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="checkUsername"><span class="type-signature"></span>checkUsername<span class="signature">(username)</span><span class="type-signature"> &rarr; {Boolean}</span></h3><div class="description"><p>Checks if user can set their username to a string</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>username</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>string to check</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.6</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line802">line 802</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>whether or not username is valid and unused</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Boolean</span></dd></dl></div><h3 class="name has-anchor" id="createComment"><span class="type-signature"></span>createComment<span class="signature">(parentPostID, text, groupID, replyCommentID<span class="signature-attributes">opt</span>, assetList<span class="signature-attributes">opt</span>, disableDMs<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>}</span></h3><div class="description"><p>Creates a comment on a post</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>parentPostID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of post on which this comment is made</p></td></tr><tr><td class="name"><code>text</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>text content of comment</p></td></tr><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group in which the parent post resides</p></td></tr><tr><td class="name"><code>replyCommentID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of comment to reply to. Falls back to parentPostID</p></td></tr><tr><td class="name"><code>assetList</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a>></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>list of assets to attach</p></td></tr><tr><td class="name"><code>disableDMs</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>prevent direct messages being sent to comment's author</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.2.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line643">line 643</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>created comment</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></span></dd></dl></div><h3 class="name has-anchor" id="createPost"><span class="type-signature"></span>createPost<span class="signature">(text, groupID, assetList<span class="signature-attributes">opt</span>, disableDMs<span class="signature-attributes">opt</span>, disableComments<span class="signature-attributes">opt</span>, anonymous<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>}</span></h3><div class="description"><p>Creates a new post in the specified group</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>text</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>text content of comment</p></td></tr><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>alphanumeric ID of group in which the parent post resides</p></td></tr><tr><td class="name"><code>assetList</code></td><td class="type"><span class="param-type">Array.&lt;<a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a>></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>list of assets to attach.</p></td></tr><tr><td class="name"><code>disableDMs</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>prevent direct messages from being sent to post's author</p></td></tr><tr><td class="name"><code>disableComments</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>whether or not comments should be disabled on post</p></td></tr><tr><td class="name"><code>anonymous</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>whether or not to hide user's name and icon on post</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.2.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line691">line 691</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>the created post</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></span></dd></dl></div><h3 class="name has-anchor" id="deletePostOrComment"><span class="type-signature"></span>deletePostOrComment<span class="signature">(postOrCommentID)</span></h3><div class="description"><p>Deletes a post or comment that the user created</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>postOrCommentID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of post to delete</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.2.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line734">line 734</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getAssetLibrary"><span class="type-signature"></span>getAssetLibrary<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;<a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a>>}</span></h3><div class="description"><p>Retrieves the entire accessible asset library. Be warned that as of the time of this documentation, it's a 1.5MB JSON download and this request is very expensive.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.0.6</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line525">line 525</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;<a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a>></span></dd></dl></div><h3 class="name has-anchor" id="getAvailableGroups"><span class="type-signature"></span>getAvailableGroups<span class="signature">(onePage)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="global.html#SidechatGroup">SidechatGroup</a>>}</span></h3><div class="description"><p>Gets groups to be displayed on the &quot;Explore Groups&quot; page</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>onePage</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not results should be returned as a single page</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.0.0-alpha.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line498">line 498</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;<a href="global.html#SidechatGroup">SidechatGroup</a>></span></dd></dl></div><h3 class="name has-anchor" id="getCurrentUser"><span class="type-signature"></span>getCurrentUser<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a>}</span></h3><div class="description"><p>Gets the current authenticated user and a list of the groups of which they are members.</p></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.1.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line551">line 551</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></span></dd></dl></div><h3 class="name has-anchor" id="getGroupChats"><span class="type-signature"></span>getGroupChats<span class="signature">()</span></h3><div class="description"><p>Retrieves joinable group chats</p></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.5</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line892">line 892</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getGroupMetadata"><span class="type-signature"></span>getGroupMetadata<span class="signature">(groupID<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatGroup">SidechatGroup</a>}</span></h3><div class="description"><p>Gets the metadata of a group from its ID</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>alphanumeric ID of a group to get. Falls back to user's primary group.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.1.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line578">line 578</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatGroup">SidechatGroup</a></span></dd></dl></div><h3 class="name has-anchor" id="getGroupPosts"><span class="type-signature"></span>getGroupPosts<span class="signature">(groupID, category, cursor<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a>}</span></h3><div class="description"><p>Fetches posts from the specified category in a group</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes"></td><td class="description last"><p>group ID</p></td></tr><tr><td class="name"><code>category</code></td><td class="type"><span class="param-type">"hot"</span> |<wbr> <span class="param-type">"recent"</span> |<wbr> <span class="param-type">"top"</span></td><td class="attributes"></td><td class="description last"><p>category to filter posts</p></td></tr><tr><td class="name"><code>cursor</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatCursorString">SidechatCursorString</a></span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>cursor string</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line296">line 296</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>List of posts and cursor</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></span></dd></dl></div><h3 class="name has-anchor" id="getPost"><span class="type-signature"></span>getPost<span class="signature">(postID, includeDeleted)</span><span class="type-signature"> &rarr; {<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>}</span></h3><div class="description"><p>Fetches a single post with just its ID</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>postID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>ID of post to fetch</p></td></tr><tr><td class="name"><code>includeDeleted</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>undocumented</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line360">line 360</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>post object</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></span></dd></dl></div><h3 class="name has-anchor" id="getPostComments"><span class="type-signature"></span>getPostComments<span class="signature">(postID)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>>}</span></h3><div class="description"><p>Get all the commments on a post</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>postID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>post ID to get comments for</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.0.0-alpha.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line422">line 422</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>list of comments</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>></span></dd></dl></div><h3 class="name has-anchor" id="getUpdates"><span class="type-signature"></span>getUpdates<span class="signature">(groupID<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Get updated status for user and group</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>ID of a specific group to retrieve info from. Falls back to user's primary group.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.1.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line264">line 264</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getUserAndGroup"><span class="type-signature"></span>getUserAndGroup<span class="signature">(groupID<span class="signature-attributes">opt</span>)</span></h3><div class="description"><p>Get updated status for user and group</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="attributes">&lt;optional><br></td><td class="description last"><p>ID of a specific group to retrieve info from. Falls back to user's primary group.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="important tag-deprecated bold">Deprecated</dt><dd><ul><li>since 2.1.0, will be removed by 3.0.0. Please use `getUpdates` instead!</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line253">line 253</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="getUserContent"><span class="type-signature"></span>getUserContent<span class="signature">(contentType)</span><span class="type-signature"> &rarr; {Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>>}</span></h3><div class="description"><p>Fetches the posts or comments that the user has created</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>contentType</code></td><td class="type"><span class="param-type">"posts"</span> |<wbr> <span class="param-type">"comments"</span></td><td class="description last"><p>type of user content to fetch</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.5</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line390">line 390</a></li></ul></dd></div></dl><div class="method-member-container mt-20"><strong>Returns:</strong><div class="param-desc"><p>post object</p></div><dl class="param-type"><dt>Type:&nbsp;</dt><dd><span class="param-type">Array.&lt;<a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a>></span></dd></dl></div><h3 class="name has-anchor" id="joinGroupChat"><span class="type-signature"></span>joinGroupChat<span class="signature">()</span></h3><div class="description"><p>Joins a group chat</p></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.5</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line917">line 917</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="loginViaSMS"><span class="type-signature"></span>loginViaSMS<span class="signature">(phoneNumber)</span></h3><div class="description"><p>Initiate the login process with a phone number. Should be followed up with verifySMSCode().</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>phoneNumber</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>US phone number (WITHOUT +1) to send verification code to</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line75">line 75</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="readActivity"><span class="type-signature"></span>readActivity<span class="signature">(activityID)</span></h3><div class="description"><p>Marks an activity item as read</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>activityID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of activity object</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.2</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line864">line 864</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="registerEmail"><span class="type-signature"></span>registerEmail<span class="signature">(email)</span></h3><div class="description"><p>Initiate the email setup process. Should be followed up with checkEmailVerification().</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>email</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>school email address to send verification code to</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line159">line 159</a></li></ul></dd></div><div class="details-item-container"><dt class="tag-tutorial bold">Tutorials</dt><dd class="tag-tutorial"><ul><li><a href="tutorial-Email Registration.html">Email Registration</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setAPIRoot"><span class="type-signature"></span>setAPIRoot<span class="signature">(url)</span></h3><div class="description"><p>Manually set the root URL for all API requests. This can be used for mocking requests or redirecting them to a different server</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>url</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>new root URL to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.9</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line65">line 65</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setAge"><span class="type-signature"></span>setAge<span class="signature">(age, registrationID)</span></h3><div class="description"><p>Set the user's age. If this function succeeds, the user will be authenticated for future requests.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>age</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>user's age in years</p></td></tr><tr><td class="name"><code>registrationID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>the registration ID generated by verifySMSCode()</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line128">line 128</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setDeviceID"><span class="type-signature"></span>setDeviceID<span class="signature">(deviceId)</span></h3><div class="description"><p>Set the device ID of the current user</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>deviceId</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>the device ID to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line220">line 220</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setGroupMembership"><span class="type-signature"></span>setGroupMembership<span class="signature">(groupID, isMember)</span></h3><div class="description"><p>Joins or leaves a group</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>groupID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of group to join or leave</p></td></tr><tr><td class="name"><code>isMember</code></td><td class="type"><span class="param-type">Boolean</span></td><td class="description last"><p>whether or not the user should be a member of the group</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.8</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line605">line 605</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setToken"><span class="type-signature"></span>setToken<span class="signature">(token)</span></h3><div class="description"><p>Manually set the currently signed in user's token. Generally try to avoid this and instead either pass a token to the constructor or login automatically through the auth functions</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>token</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></span></td><td class="description last"><p>user bearer token</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line55">line 55</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setUserIcon"><span class="type-signature"></span>setUserIcon<span class="signature">(userID, emoji, primaryColor, secondaryColor)</span></h3><div class="description"><p>Sets the conversation icon of the current user</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>userID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of user</p></td></tr><tr><td class="name"><code>emoji</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>emoji to set as icon</p></td></tr><tr><td class="name"><code>primaryColor</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex string (including #) of primary color</p></td></tr><tr><td class="name"><code>secondaryColor</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>hex string (including #) of secondary color</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.2.1</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line766">line 766</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setUsername"><span class="type-signature"></span>setUsername<span class="signature">(userID, username)</span></h3><div class="description"><p>Changes the username of the current user</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>userID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>alphanumeric ID of user</p></td></tr><tr><td class="name"><code>username</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>new username to set</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.3.6</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line835">line 835</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="setVote"><span class="type-signature"></span>setVote<span class="signature">(postID, action)</span></h3><div class="description"><p>Upvote or downvote, or unvote a post</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>postID</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>post ID to vote on</p></td></tr><tr><td class="name"><code>action</code></td><td class="type"><span class="param-type"><a href="global.html#SidechatVoteString">SidechatVoteString</a></span></td><td class="description last"><p>whether to upvote, downvote, or reset vote</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>2.0.0-alpha.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line328">line 328</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="verifySMSCode"><span class="type-signature"></span>verifySMSCode<span class="signature">(phoneNumber, code)</span></h3><div class="description"><p>Verify the code sent via SMS with loginViaSMS(). If this function succeeds, the user will be authenticated for future requests.</p></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>phoneNumber</code></td><td class="type"><span class="param-type">Number</span></td><td class="description last"><p>US phone number (WITHOUT +1) that verification code was sent to</p></td></tr><tr><td class="name"><code>code</code></td><td class="type"><span class="param-type">String</span></td><td class="description last"><p>the verification code</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-since bold">Since</dt><dd class="tag-since"><ul><li>1.0.0</li></ul></dd></div><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="classes_SidechatAPIClient.js.html">classes/SidechatAPIClient.js</a>, <a href="classes_SidechatAPIClient.js.html#line100">line 100</a></li></ul></dd></div></dl></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><a href="/" class="sidebar-title sidebar-title-anchor">Home</a><div class="mobile-nav-links"><div class="navbar-item"><a id="" href="https://github.com/micahlt/offsides#README.md" target="_blank">Offsides (Sidechat for Android)</a></div></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-tutorials"><div>Tutorials</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="tutorial-Authentication.html">Authentication</a></div><div class="sidebar-section-children"><a href="tutorial-Email Registration.html">Email Registration</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-classes"><div>Classes</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="SidechatAPIClient.html">SidechatAPIClient</a></div><div class="sidebar-section-children"><a href="SidechatAPIError.html">SidechatAPIError</a></div><div class="sidebar-section-children"><a href="SidechatColorList.html">SidechatColorList</a></div></div><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#SidechatAssetMetadata">SidechatAssetMetadata</a></div><div class="sidebar-section-children"><a href="global.html#SidechatAuthToken">SidechatAuthToken</a></div><div class="sidebar-section-children"><a href="global.html#SidechatColor">SidechatColor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCurrentUser">SidechatCurrentUser</a></div><div class="sidebar-section-children"><a href="global.html#SidechatCursorString">SidechatCursorString</a></div><div class="sidebar-section-children"><a href="global.html#SidechatGroup">SidechatGroup</a></div><div class="sidebar-section-children"><a href="global.html#SidechatIdentity">SidechatIdentity</a></div><div class="sidebar-section-children"><a href="global.html#SidechatLibraryAsset">SidechatLibraryAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatMembership">SidechatMembership</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostOrComment">SidechatPostOrComment</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPostsAndCursor">SidechatPostsAndCursor</a></div><div class="sidebar-section-children"><a href="global.html#SidechatPrivateAssetURL">SidechatPrivateAssetURL</a></div><div class="sidebar-section-children"><a href="global.html#SidechatSimpleAsset">SidechatSimpleAsset</a></div><div class="sidebar-section-children"><a href="global.html#SidechatVoteString">SidechatVoteString</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>