GSI - Employe Self Service Mobile
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

51 lines
1.9 KiB

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.RTDBRemoveRemote = void 0;
const apiv2_1 = require("../apiv2");
const url_1 = require("url");
const logger_1 = require("../logger");
const utils = require("../utils");
class RTDBRemoveRemote {
constructor(instance, host, disableTriggers) {
this.instance = instance;
this.host = host;
this.disableTriggers = disableTriggers;
const url = new url_1.URL(utils.getDatabaseUrl(this.host, this.instance, "/"));
this.apiClient = new apiv2_1.Client({ urlPrefix: url.origin, auth: true });
}
deletePath(path) {
return this.patch(path, null, "all data");
}
deleteSubPath(path, subPaths) {
const body = {};
for (const c of subPaths) {
body[c] = null;
}
return this.patch(path, body, `${subPaths.length} subpaths`);
}
async patch(path, body, note) {
const t0 = Date.now();
const url = new url_1.URL(utils.getDatabaseUrl(this.host, this.instance, path + ".json"));
const queryParams = {
print: "silent",
writeSizeLimit: "tiny",
disableTriggers: this.disableTriggers.toString(),
};
const res = await this.apiClient.request({
method: "PATCH",
path: url.pathname,
body,
queryParams,
responseType: "stream",
resolveOnHTTPError: true,
});
const dt = Date.now() - t0;
if (res.status >= 400) {
logger_1.logger.debug(`[database] Failed to remove ${note} at ${path} time: ${dt}ms, will try recursively chunked deletes.`);
return false;
}
logger_1.logger.debug(`[database] Sucessfully removed ${note} at ${path} time: ${dt}ms`);
return true;
}
}
exports.RTDBRemoveRemote = RTDBRemoveRemote;