mirror of
https://github.com/Nezumi-2711/cloudflare-gateway-pihole-scripts.git
synced 2026-09-22 13:38:37 +00:00
refactored list deletion
This commit is contained in:
+56
@@ -1,5 +1,15 @@
|
||||
import { LIST_ITEM_SIZE } from "./constants.js";
|
||||
import { requestGateway } from "./helpers.js";
|
||||
import { sleep } from "./utils.js";
|
||||
|
||||
/**
|
||||
* Gets Zero Trust lists.
|
||||
* @returns {Promise<Object>}
|
||||
*/
|
||||
export const getZeroTrustLists = () =>
|
||||
requestGateway("/lists", {
|
||||
method: "GET",
|
||||
});
|
||||
|
||||
/**
|
||||
* Creates a Zero Trust list.
|
||||
@@ -70,3 +80,49 @@ export const createZeroTrustListsAtOnce = async (items) => {
|
||||
console.error(`Error occurred while creating lists - ${err.toString()}`);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Deletes a Zero Trust list.
|
||||
* @param {number} id The ID of the list.
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
const deleteZeroTrustList = (id) =>
|
||||
requestGateway(`/lists/${id}`, { method: "DELETE" });
|
||||
|
||||
/**
|
||||
* Deletes Zero Trust lists sequentially.
|
||||
* @param {Object[]} lists The lists to be deleted.
|
||||
* @param {number} lists[].id The ID of a list.
|
||||
* @param {string} lists[].name The name of a list.
|
||||
*/
|
||||
export const deleteZeroTrustListsOneByOne = async (lists) => {
|
||||
let totalListNumber = lists.length;
|
||||
|
||||
for (const { id, name } of lists) {
|
||||
try {
|
||||
await deleteZeroTrustList(id);
|
||||
await sleep();
|
||||
totalListNumber--;
|
||||
console.log(`Deleted ${name} list - ${totalListNumber} left`);
|
||||
} catch (err) {
|
||||
console.error(`Could not delete ${name} - ${err.toString()}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Deletes all Zero Trust lists at once.
|
||||
* @param {Object[]} lists The lists to be deleted.
|
||||
* @param {number} lists[].id The ID of a list.
|
||||
* @param {string} lists[].name The name of a list.
|
||||
*/
|
||||
export const deleteZeroTrustListsAtOnce = async (lists) => {
|
||||
const requests = lists.map(({ id }) => deleteZeroTrustList(id));
|
||||
|
||||
try {
|
||||
await Promise.all(requests);
|
||||
console.log(`Deleted ${lists.length} lists`);
|
||||
} catch (err) {
|
||||
console.error(`Error occurred while deleting lists - ${err.toString()}`);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user