forked from dienianindya/gsi_ess_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.
67 lines
2.6 KiB
67 lines
2.6 KiB
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.setRulesetLabels = exports.createRuleset = exports.getRulesetLabels = exports.getRuleset = exports.listAllRulesets = void 0;
|
|
const api_1 = require("../api");
|
|
const apiv2_1 = require("../apiv2");
|
|
const logger_1 = require("../logger");
|
|
const utils = require("../utils");
|
|
function handleErrorResponse(response) {
|
|
if (response.body && response.body.error) {
|
|
return utils.reject(response.body.error, { code: 2 });
|
|
}
|
|
logger_1.logger.debug("[rules] error:", response.status, response.body);
|
|
return utils.reject("Unexpected error encountered with database.", {
|
|
code: 2,
|
|
});
|
|
}
|
|
const apiClient = new apiv2_1.Client({ urlPrefix: api_1.rtdbMetadataOrigin });
|
|
async function listAllRulesets(databaseName) {
|
|
const response = await apiClient.get(`/namespaces/${databaseName}/rulesets`, { resolveOnHTTPError: true });
|
|
if (response.status === 200) {
|
|
return response.body.rulesets;
|
|
}
|
|
return handleErrorResponse(response);
|
|
}
|
|
exports.listAllRulesets = listAllRulesets;
|
|
async function getRuleset(databaseName, rulesetId) {
|
|
const response = await apiClient.get(`/namespaces/${databaseName}/rulesets/${rulesetId}`, { resolveOnHTTPError: true });
|
|
if (response.status === 200) {
|
|
return response.body;
|
|
}
|
|
return handleErrorResponse(response);
|
|
}
|
|
exports.getRuleset = getRuleset;
|
|
async function getRulesetLabels(databaseName) {
|
|
const response = await apiClient.get(`/namespaces/${databaseName}/ruleset_labels`, {
|
|
resolveOnHTTPError: true,
|
|
});
|
|
if (response.status === 200) {
|
|
return response.body;
|
|
}
|
|
return handleErrorResponse(response);
|
|
}
|
|
exports.getRulesetLabels = getRulesetLabels;
|
|
async function createRuleset(databaseName, source) {
|
|
const localApiClient = new apiv2_1.Client({
|
|
urlPrefix: utils.addSubdomain(api_1.realtimeOrigin, databaseName),
|
|
});
|
|
const response = await localApiClient.post(`/.settings/rulesets.json`, source, { resolveOnHTTPError: true });
|
|
if (response.status === 200) {
|
|
return response.body.id;
|
|
}
|
|
return handleErrorResponse(response);
|
|
}
|
|
exports.createRuleset = createRuleset;
|
|
async function setRulesetLabels(databaseName, labels) {
|
|
const localApiClient = new apiv2_1.Client({
|
|
urlPrefix: utils.addSubdomain(api_1.realtimeOrigin, databaseName),
|
|
});
|
|
const response = await localApiClient.put(`/.settings/ruleset_labels.json`, labels, {
|
|
resolveOnHTTPError: true,
|
|
});
|
|
if (response.status === 200) {
|
|
return response.body;
|
|
}
|
|
return handleErrorResponse(response);
|
|
}
|
|
exports.setRulesetLabels = setRulesetLabels;
|