40 lines
1004 B
JavaScript
40 lines
1004 B
JavaScript
|
// @flow
|
||
|
|
||
|
import { Dropbox } from 'dropbox';
|
||
|
|
||
|
const logger = require('jitsi-meet-logger').getLogger(__filename);
|
||
|
|
||
|
/**
|
||
|
* Fetches information about the user's dropbox account.
|
||
|
*
|
||
|
* @param {string} token - The dropbox access token.
|
||
|
* @param {string} clientId - The Jitsi Recorder dropbox app ID.
|
||
|
* @returns {Promise<Object|undefined>}
|
||
|
*/
|
||
|
export function getDropboxData(
|
||
|
token: string,
|
||
|
clientId: string
|
||
|
): Promise<?Object> {
|
||
|
const dropboxAPI = new Dropbox({
|
||
|
accessToken: token,
|
||
|
clientId
|
||
|
});
|
||
|
|
||
|
return Promise.all(
|
||
|
[ dropboxAPI.usersGetCurrentAccount(), dropboxAPI.usersGetSpaceUsage() ]
|
||
|
).then(([ account, space ]) => {
|
||
|
const { allocation, used } = space;
|
||
|
const { allocated } = allocation;
|
||
|
|
||
|
return {
|
||
|
userName: account.name.display_name,
|
||
|
spaceLeft: Math.floor((allocated - used) / 1048576)// 1MiB=1048576B
|
||
|
};
|
||
|
|
||
|
}, error => {
|
||
|
logger.error(error);
|
||
|
|
||
|
return undefined;
|
||
|
});
|
||
|
}
|