UNPKG

noblox-bonk

Version:
60 lines (54 loc) 1.57 kB
// Includes const http = require('../util/http.js').func const getGeneralToken = require('../util/getGeneralToken.js').func // Args exports.required = ['group', 'target'] exports.optional = ['jar'] // Docs /** * 🔐 Exile a user from a group. * @category Group * @alias exile * @param {number} group - The id of the group. * @param {number} target - The userId of the user being exiled. * @returns {Promise<void>} * @example const noblox = require("noblox.js") * // Login using your cookie * noblox.exile(1, 2) **/ function exileUser (group, target, jar, xcsrf) { return new Promise((resolve, reject) => { const httpOpt = { url: `https://groups.roblox.com/v1/groups/${group}/users/${target}`, options: { method: 'DELETE', resolveWithFullResponse: true, jar: jar, headers: { 'X-CSRF-TOKEN': xcsrf } } } return http(httpOpt) .then(function (res) { const responseData = JSON.parse(res.body) if (res.statusCode !== 200) { let error = 'An unknown error has occurred.' if (responseData && responseData.errors) { error = responseData.errors.map((e) => e.message).join('\n') } reject(new Error(error)) } else { resolve() } }).catch(error => reject(error)) }) } // Define exports.func = function (args) { const jar = args.jar return getGeneralToken({ jar: jar }) .then(function (xcsrf) { return exileUser(args.group, args.target, args.jar, xcsrf) }) }