Add file deletion method in storage service
Implemented a new method to delete files from the storage by checksum and extension. This method logs the deletion process and throws a NotFoundException if the file cannot be found. Updated dependencies to include 'rm' from 'node:fs/promises'.
This commit is contained in:
parent
79b2dec9e9
commit
8686f0c27b
@ -1,6 +1,6 @@
|
||||
import * as console from "node:console";
|
||||
import * as crypto from "node:crypto";
|
||||
import { readFile, writeFile } from "node:fs/promises";
|
||||
import { readFile, writeFile, rm } from "node:fs/promises";
|
||||
import { join } from "node:path";
|
||||
import {
|
||||
BadRequestException,
|
||||
@ -263,4 +263,29 @@ export class StorageService {
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a file from the storage.
|
||||
*
|
||||
* @param {string} checksum - The checksum of the file to delete.
|
||||
* @param {string} extension - The extension of the file to delete.
|
||||
* @param {boolean} isDocumentation - A flag indicating whether the file is a documentation file.
|
||||
* @return {Promise<void>} A promise that resolves when the file is successfully deleted.
|
||||
* @throws {NotFoundException} Throws an exception if the file cannot be found.
|
||||
*/
|
||||
public async delete(
|
||||
checksum: string,
|
||||
extension: string,
|
||||
isDocumentation: boolean,
|
||||
) {
|
||||
try {
|
||||
const fileName = `${isDocumentation ? "doc" : "file"}-${checksum}.${extension.toLowerCase()}`;
|
||||
console.log(`Deleting file "${fileName}" from storage...`);
|
||||
await rm(join(process.cwd(), "assets/", fileName));
|
||||
console.log(`File "${fileName}" deleted successfully.`);
|
||||
} catch (err) {
|
||||
console.log("File not found.");
|
||||
throw new NotFoundException(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user