aboutsummaryrefslogtreecommitdiff
path: root/vnext/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'vnext/src/api')
-rw-r--r--vnext/src/api/index.js59
1 files changed, 51 insertions, 8 deletions
diff --git a/vnext/src/api/index.js b/vnext/src/api/index.js
index a6a6208c..fac845e8 100644
--- a/vnext/src/api/index.js
+++ b/vnext/src/api/index.js
@@ -4,13 +4,17 @@ import Cookies from 'universal-cookie';
const apiBaseUrl = 'https://juick.com';
/**
- * @typedef {Object} Token
+ * @typedef {object} Token
* @property {string} type
* @property {string} token
*/
+/**
+ * @typedef { object } TagStats
+ * @property { string } tag
+ */
/**
- * @typedef {Object} User
+ * @typedef {object} User
* @property {string=} uname
* @property {number} uid
* @property {number=} unreadCount
@@ -22,7 +26,7 @@ const apiBaseUrl = 'https://juick.com';
*/
/**
- * @typedef {Object} SecureUserProperties
+ * @typedef {object} SecureUserProperties
* @property {string=} hash
* @property {Token[]=} tokens
* @property {string=} telegramName
@@ -38,7 +42,7 @@ const apiBaseUrl = 'https://juick.com';
*/
/**
- * @typedef {Object} ChatProperties
+ * @typedef {object} ChatProperties
* @property {number=} unreadCount
* @property {string=} lastMessageText
*/
@@ -48,7 +52,7 @@ const apiBaseUrl = 'https://juick.com';
*/
/**
- * @typedef {Object} Message
+ * @typedef {object} Message
* @property {string} body
* @property {number=} mid
* @property {number=} rid
@@ -83,9 +87,10 @@ client.interceptors.request.use(config => {
/**
* fetch my info
+ *
* @param {string} username
* @param {string} password
- * @return {Promise<SecureUser, Error>} me object
+ * @returns {Promise<SecureUser, Error>} me object
*/
export function me(username = '', password = '') {
let cookies = new Cookies();
@@ -113,6 +118,9 @@ export function info(username) {
}
+/**
+ *
+ */
export function getChats() {
return client.get('/api/groups_pms');
}
@@ -174,7 +182,13 @@ export function comment(mid, rid, body, attach) {
form.append('attach', attach);
return client.post('/api/comment', form);
}
-
+/**
+ * Edit message
+ *
+ * @param {number} mid
+ * @param {number} rid
+ * @param {string?} body
+ */
export function update(mid, rid, body) {
let form = new FormData();
form.append('mid', mid);
@@ -182,7 +196,11 @@ export function update(mid, rid, body) {
form.append('body', body);
return client.post('/api/update', form);
}
-
+/**
+ * Update user avatar
+ *
+ * @param {string} newAvatar
+ */
export function updateAvatar(newAvatar) {
let form = new FormData();
form.append('avatar', newAvatar);
@@ -196,14 +214,23 @@ function socialLink(network) {
return `${apiBaseUrl}/api/_${network}login?state=${window.location.protocol}//${window.location.host}${window.location.pathname}`;
}
+/**
+ *
+ */
export function facebookLink() {
return socialLink('fb');
}
+/**
+ *
+ */
export function vkLink() {
return socialLink('vk');
}
+/**
+ *
+ */
export function appleLink() {
return socialLink('apple');
}
@@ -239,3 +266,19 @@ export function fetchUserUri(profileUrl) {
}
});
}
+
+/**
+ *
+ * @returns { Promise<TagStats[]> } tags
+ */
+ export const trends = async () => {
+ try {
+ const response = await client.get('/api/tags');
+ return response.data;
+ } catch (e) {
+ console.error(e);
+ return [];
+ }
+};
+
+