zenodraft
Version:
CLI to manage depositions on Zenodo and Zenodo Sandbox
52 lines • 2.54 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.file_delete = void 0;
const node_fetch_1 = require("node-fetch");
const details_1 = require("../deposition/show/details");
const file_delete = (token, sandbox, version_id, filename, verbose = false) => __awaiter(void 0, void 0, void 0, function* () {
const msg = `deleting file ${filename} from deposition with id ${version_id}...`;
if (verbose) {
console.log(msg);
}
const deposition = yield details_1.deposition_show_details(token, sandbox, version_id, verbose);
const response1 = yield node_fetch_1.default(deposition.links.files, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
if (response1.ok !== true) {
throw new Error(`(errid 1) Something went wrong on GET to ${deposition.links.files}: ${response1.status} - ${response1.statusText} `);
}
const files = yield response1.json();
const filtered = files.filter(file => file.filename === filename);
if (filtered.length === 0) {
throw new Error(`(errid 2) There's no file named '${filename}' in deposition with id ${version_id}.`);
}
const fileid = filtered[0].id;
const response2 = yield node_fetch_1.default(`${deposition.links.files}/${fileid}`, {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});
if (response2.ok !== true) {
throw new Error(`(errid 3) Something went wrong on DELETE to ${deposition.links.files}/${fileid}: ${response2.status} - ${response2.statusText} `);
}
if (verbose) {
console.log(`${msg}done`);
}
});
exports.file_delete = file_delete;
//# sourceMappingURL=delete.js.map