@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
62 lines (61 loc) • 2.44 kB
JavaScript
import ObjectFactory from '../../Utilities/ObjectFactory';
import { ApiBase } from '../Implementation/ApiBase';
export class NamedQueryInternalApi extends ApiBase {
getReferencedNamedQueryNames(expression = '') {
try {
return this.getAdaptableInternalApi()
.getQueryLanguageService()
.getNamedQueryNamesFromExpression(expression);
}
catch (error) {
this.logWarn(`QueryApi.getReferencedNamedQueryNames received an invalid expression: ${expression}
Error: ${error}`);
return [];
}
}
getNamedQueryModuleReferences(namedQueryName) {
const references = [];
this.getAdaptableInternalApi()
.getModules()
.forEach((module) => {
if (module
.getModuleNamedQueryReferences()
.some((moduleReference) => moduleReference === namedQueryName)) {
references.push(module.moduleInfo.FriendlyName);
}
});
return references;
}
validateDeletedNamedQuery(namedQuery) {
const namedQueryReferences = this.getNamedQueryModuleReferences(namedQuery);
if (namedQueryReferences.length) {
const alert = {
alertType: 'generic',
header: 'Named Query',
message: `This Named Query cannot be deleted. It is still referenced by: ${namedQueryReferences.join(', ')}.`,
alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
};
this.getAlertApi().displayAdaptableAlertNotification(alert);
return false;
}
else {
return true;
}
}
validateRenamedNamedQuery(namedQuery) {
const namedQueryReferences = this.getNamedQueryModuleReferences(namedQuery);
if (namedQueryReferences.length) {
const alert = {
alertType: 'generic',
header: 'Named Query',
message: `This Named Query cannot be renamed. It is currently referenced by: ${namedQueryReferences.join(', ')}.`,
alertDefinition: ObjectFactory.CreateInternalAlertDefinitionForMessages('Error'),
};
this.getAlertApi().displayAdaptableAlertNotification(alert);
return false;
}
else {
return true;
}
}
}