Skip to content

Commit 7801514

Browse files
author
Jagveer
committed
Bulk Delete File API.
1 parent 7c9262c commit 7801514

File tree

4 files changed

+37
-0
lines changed

4 files changed

+37
-0
lines changed

constants/errorMessages.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ module.exports = {
1515
"INVALID_PHASH_VALUE": { message: "Invalid pHash value", help: "Both pHash strings must be valid hexadecimal numbers" },
1616
"MISSING_PHASH_VALUE": { message: "Missing pHash value", help: "Please pass two pHash values" },
1717
"UNEQUAL_STRING_LENGTH": { message: "Unequal pHash string length", help: "For distance calucation, the two pHash strings must have equal length" },
18+
//bulk delete errors
19+
"INVALID_FILEIDS_VALUE": {message: "Invalid value for fileIds", help: "fileIds should be an string array of fileId of the files to delete. The array should have atleast one fileId."}
1820
};

index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,10 @@ var ImageKit = function(opts) {
115115
this.getPurgeCacheStatus = promisify(function(requestId, callback) {
116116
return manage.getPurgeCacheStatus(requestId, this.options, callback);
117117
});
118+
119+
this.bulkDeleteFiles = promisify(function(fileIdArray, callback) {
120+
return manage.bulkDeleteFiles(fileIdArray, this.options, callback);
121+
});
118122

119123
// To generate Signature for upload request
120124
this.getAuthenticationParameters = function(token, timestamp) {

libs/manage/file.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,4 +157,34 @@ module.exports.listFiles = function(listOptions, defaultOptions, callback) {
157157
});
158158
};
159159

160+
/*
161+
Bulk Delete By FileIds
162+
*/
163+
module.exports.bulkDeleteFiles = function(fileIdArray, defaultOptions, callback) {
164+
165+
if(!Array.isArray(fileIdArray)
166+
|| fileIdArray.length === 0
167+
|| fileIdArray.filter(fileId => typeof(fileId) !== 'string').length > 0) {
168+
respond(true, errorMessages.INVALID_FILEIDS_VALUE, callback);
169+
return;
170+
}
171+
172+
const data = {
173+
fileIds: fileIdArray,
174+
}
175+
176+
const requestOptions = {
177+
url: "https://api.imagekit.io/v1/files/batch/deleteByFileIds",
178+
method: "POST",
179+
json: data
180+
}
160181

182+
request(requestOptions, defaultOptions, function(err, response, body) {
183+
if(err) {
184+
respond(true, err, callback);
185+
return;
186+
}
187+
188+
respond(false, body, callback)
189+
});
190+
};

libs/manage/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ module.exports.getFileDetails = file.getDetails;
66
module.exports.updateFileDetails = file.updateDetails;
77
module.exports.getFileMetadata = file.getMetadata;
88
module.exports.deleteFile = file.deleteFile;
9+
module.exports.bulkDeleteFiles = file.bulkDeleteFiles;
910
module.exports.purgeCache = cache.purgeCache;
1011
module.exports.getPurgeCacheStatus = cache.getPurgeCacheStatus;

0 commit comments

Comments
 (0)