Browse Source

proper way to delete csv and json

pull/11/head
vargburz 1 year ago
parent
commit
cf64ac2acc
  1. 9
      src/routes/tasks.ts
  2. 20
      src/services/exporter.ts

9
src/routes/tasks.ts

@ -92,10 +92,11 @@ async function addTask(req: TRequest, res) {
}
async function deleteTask(req, res) {
let taskId = req.body.taskId;
let csvFilePath = path.join(CSV_PATH, `${taskId}.csv`);
let jsonFilePath = path.join(CSV_PATH, `${taskId}.json`);
const taskId = req.body.taskId;
const jsonFilePath = path.join(CSV_PATH, `${taskId}.json`);
const data = fs.readFileSync(jsonFilePath, 'utf8');
const csvName = JSON.parse(data)['filename'];
const csvFilePath = path.join(CSV_PATH, `${csvName}.csv`);
if(fs.existsSync(csvFilePath)) {
fs.unlink(csvFilePath, err => console.error(err));
}

20
src/services/exporter.ts

@ -117,15 +117,15 @@ export class Exporter {
const csvStream = csv.createWriteStream({ headers: true, delimiter: this._task.csvDelimiter })
.on('error', async e => await this._updateProgress({ status: ExportStatus.ERROR, errorMessage: e.message }));
const writableStream = fs.createWriteStream(this._getFilePath('csv'));
const writableStream = fs.createWriteStream(this._getCsvFilePath());
csvStream.pipe(writableStream);
writableStream.on('finish', async () => {
if(this._task.progress.status !== ExportStatus.ERROR) {
console.log(`Everything is written to ${this._getFilename('csv')}`);
console.log(`Everything is written to ${this._getCsvFilename()}`);
await this._updateProgress({ status: ExportStatus.FINISHED, progress: 1 });
} else {
console.log(`${this._getFilename('csv')} export is finished with error`);
console.log(`${this._getCsvFilename()} export is finished with error`);
}
});
@ -141,7 +141,7 @@ export class Exporter {
progress: _.assign(this._task.progress, progress, { time }),
};
await promisify(fs.writeFile)(this._getFilePath('json'), JSON.stringify(data), 'utf8');
await promisify(fs.writeFile)(this._getJsonFilePath(), JSON.stringify(data), 'utf8');
} catch(err) {
console.error(err);
throw new Error('Can`t write file');
@ -174,12 +174,16 @@ export class Exporter {
}
}
private _getFilename(extension: string): string {
return `${this._task.filename}.${extension}`;
private _getCsvFilename(): string {
return `${this._task.filename}.csv`;
}
private _getFilePath(extension: string): string {
let filename = this._getFilename(extension);
private _getCsvFilePath(): string {
let filename = this._getCsvFilename();
return path.join(CSV_PATH, filename);
}
private _getJsonFilePath(): string {
return path.join(CSV_PATH, `${this._task.id}.json`);
}
}

Loading…
Cancel
Save