@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
77 lines (76 loc) • 2.31 kB
JavaScript
export default class ServerOgc {
constructor(name, elem) {
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "url", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "wfsSupport", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "urlWfs", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "type", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "imageType", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
Object.defineProperty(this, "aliases", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.name = name;
this.url = elem.url;
this.wfsSupport = elem.wfsSupport;
this.urlWfs = elem.urlWfs;
this.type = elem.type;
this.imageType = elem.imageType;
this.aliases = this.initializeAliases(elem);
}
getAliasKey(table, column) {
return `${table}-${column}`;
}
initializeAliases(elem) {
const aliases = {};
if (elem.attributes) {
for (const [table, columns] of Object.entries(elem.attributes)) {
for (const [column, attributes] of Object.entries(columns)) {
if (attributes.alias) {
aliases[this.getAliasKey(table, column)] = attributes.alias;
}
}
}
}
return aliases;
}
getAlias(table, column) {
const key = this.getAliasKey(table, column);
return this.aliases[key];
}
get uniqueWmsQueryId() {
return this.name + this.imageType;
}
}