/* * A tool for deleting ALL GROUP sessions Etherpad user sessions from the CLI, * because sometimes a brick is required to fix a face. */ const request = require('../src/node_modules/request'); const settings = require(`${__dirname}/../tests/container/loadSettings`).loadSettings(); const supertest = require(`${__dirname}/../src/node_modules/supertest`); const api = supertest(`http://${settings.ip}:${settings.port}`); const path = require('path'); const fs = require('fs'); // get the API Key const filePath = path.join(__dirname, '../APIKEY.txt'); const apikey = fs.readFileSync(filePath, {encoding: 'utf-8'}); // Set apiVersion to base value, we change this later. let apiVersion = 1; let guids; // Update the apiVersion api.get('/api/') .expect((res) => { apiVersion = res.body.currentVersion; if (!res.body.currentVersion) throw new Error('No version set in API'); return; }) .then(() => { const guri = `/api/${apiVersion}/listAllGroups?apikey=${apikey}`; api.get(guri) .then((res) => { guids = res.body.data.groupIDs; guids.forEach((groupID) => { const luri = `/api/${apiVersion}/listSessionsOfGroup?apikey=${apikey}&groupID=${groupID}`; api.get(luri) .then((res) => { if (res.body.data) { Object.keys(res.body.data).forEach((sessionID) => { if (sessionID) { console.log('Deleting', sessionID); const duri = `/api/${apiVersion}/deleteSession?apikey=${apikey}&sessionID=${sessionID}`; api.post(duri); // deletes } }); } else { // no session in this group. } }); }); }); });