mirror of
https://github.com/cds-astro/aladin-lite.git
synced 2025-12-24 20:10:30 -08:00
Add error callback for catalogFromVizier, catalogFromSimbad/NED/SkyBot. Use the proxy for NED queries
Co-authored-by: szpetny <>
This commit is contained in:
@@ -1871,7 +1871,7 @@ A.MOCFromJSON = function (jsonMOC, options) {
|
||||
|
||||
// TODO: try first without proxy, and then with, if param useProxy not set
|
||||
// API
|
||||
A.catalogFromURL = function (url, options, successCallback, useProxy) {
|
||||
A.catalogFromURL = function (url, options, successCallback, errorCallback, useProxy) {
|
||||
var catalog = A.catalog(options);
|
||||
Catalog.parseVOTable(
|
||||
url,
|
||||
@@ -1896,6 +1896,7 @@ A.catalogFromURL = function (url, options, successCallback, useProxy) {
|
||||
successCallback(sources);
|
||||
}
|
||||
},
|
||||
errorCallback,
|
||||
catalog.maxNbSources,
|
||||
useProxy,
|
||||
catalog.raField, catalog.decField
|
||||
@@ -1906,17 +1907,17 @@ A.catalogFromURL = function (url, options, successCallback, useProxy) {
|
||||
|
||||
// API
|
||||
// @param target: can be either a string representing a position or an object name, or can be an object with keys 'ra' and 'dec' (values being in decimal degrees)
|
||||
A.catalogFromSimbad = function (target, radius, options, successCallback) {
|
||||
A.catalogFromSimbad = function (target, radius, options, successCallback, errorCallback) {
|
||||
options = options || {};
|
||||
if (!('name' in options)) {
|
||||
options['name'] = 'Simbad';
|
||||
}
|
||||
var url = URLBuilder.buildSimbadCSURL(target, radius);
|
||||
return A.catalogFromURL(url, options, successCallback, false);
|
||||
return A.catalogFromURL(url, options, successCallback, errorCallback, false);
|
||||
};
|
||||
|
||||
// API
|
||||
A.catalogFromNED = function (target, radius, options, successCallback) {
|
||||
A.catalogFromNED = function (target, radius, options, successCallback, errorCallback) {
|
||||
options = options || {};
|
||||
if (!('name' in options)) {
|
||||
options['name'] = 'NED';
|
||||
@@ -1939,29 +1940,29 @@ A.catalogFromNED = function (target, radius, options, successCallback) {
|
||||
}
|
||||
}
|
||||
|
||||
return A.catalogFromURL(url, options, successCallback);
|
||||
return A.catalogFromURL(url, options, successCallback, errorCallback, true);
|
||||
};
|
||||
|
||||
// API
|
||||
A.catalogFromVizieR = function (vizCatId, target, radius, options, successCallback) {
|
||||
A.catalogFromVizieR = function (vizCatId, target, radius, options, successCallback, errorCallback) {
|
||||
options = options || {};
|
||||
if (!('name' in options)) {
|
||||
options['name'] = 'VizieR:' + vizCatId;
|
||||
}
|
||||
|
||||
var url = URLBuilder.buildVizieRCSURL(vizCatId, target, radius, options);
|
||||
return A.catalogFromURL(url, options, successCallback, false);
|
||||
return A.catalogFromURL(url, options, successCallback, errorCallback, false);
|
||||
};
|
||||
|
||||
// API
|
||||
A.catalogFromSkyBot = function (ra, dec, radius, epoch, queryOptions, options, successCallback) {
|
||||
A.catalogFromSkyBot = function (ra, dec, radius, epoch, queryOptions, options, successCallback, errorCallback) {
|
||||
queryOptions = queryOptions || {};
|
||||
options = options || {};
|
||||
if (!('name' in options)) {
|
||||
options['name'] = 'SkyBot';
|
||||
}
|
||||
var url = URLBuilder.buildSkyBotCSURL(ra, dec, radius, epoch, queryOptions);
|
||||
return A.catalogFromURL(url, options, successCallback, false);
|
||||
return A.catalogFromURL(url, options, successCallback, errorCallback, false);
|
||||
};
|
||||
|
||||
A.hipsDefinitionFromURL = function(url, successCallback) {
|
||||
|
||||
@@ -300,10 +300,10 @@ export let Catalog = (function() {
|
||||
|
||||
// return an array of Source(s) from a VOTable url
|
||||
// callback function is called each time a TABLE element has been parsed
|
||||
Catalog.parseVOTable = function(url, callback, maxNbSources, useProxy, raField, decField) {
|
||||
Catalog.parseVOTable = function(url, successCallback, errorCallback, maxNbSources, useProxy, raField, decField) {
|
||||
VOTable.parse(
|
||||
url,
|
||||
(fields, rows, type) => {
|
||||
(fields, rows) => {
|
||||
let sources = [];
|
||||
let footprints = [];
|
||||
|
||||
@@ -350,10 +350,12 @@ export let Catalog = (function() {
|
||||
return true;
|
||||
})
|
||||
|
||||
if (callback) {
|
||||
callback(sources, footprints, fields);
|
||||
if (successCallback) {
|
||||
successCallback(sources, footprints, fields);
|
||||
}
|
||||
},
|
||||
errorCallback,
|
||||
useProxy,
|
||||
raField,
|
||||
decField
|
||||
)
|
||||
|
||||
@@ -32,19 +32,23 @@ import { Utils } from "./../Utils.js";
|
||||
|
||||
export let VOTable = (function() {
|
||||
|
||||
function VOTable(url, callback) {
|
||||
function VOTable(url, successCallback, errorCallback) {
|
||||
fetch(url)
|
||||
.then((response) => response.text())
|
||||
.then((xml) => {
|
||||
ALEvent.AL_USE_WASM.dispatchedTo(document.body, {callback: (wasm) => {
|
||||
let votable = wasm.parseVOTable(xml);
|
||||
callback(votable);
|
||||
|
||||
successCallback(votable);
|
||||
}});
|
||||
})
|
||||
.catch((e) => errorCallback(e))
|
||||
};
|
||||
|
||||
VOTable.parse = function (url, callback, raField, decField) {
|
||||
url = Utils.handleCORSNotSameOrigin(url);
|
||||
VOTable.parse = function (url, successCallback, errorCallback, useProxy, raField, decField) {
|
||||
if(useProxy) {
|
||||
url = Utils.handleCORSNotSameOrigin(url);
|
||||
}
|
||||
|
||||
fetch(url)
|
||||
.then((response) => response.text())
|
||||
@@ -79,7 +83,7 @@ export let VOTable = (function() {
|
||||
let rows = data.get("rows");
|
||||
|
||||
if (rows) {
|
||||
callback(fields, rows)
|
||||
successCallback(fields, rows)
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -88,6 +92,13 @@ export let VOTable = (function() {
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch((e) => {
|
||||
if (errorCallback) {
|
||||
errorCallback(e);
|
||||
} else {
|
||||
throw e;
|
||||
}
|
||||
})
|
||||
};
|
||||
|
||||
// return an array of Source(s) from a VOTable url
|
||||
|
||||
Reference in New Issue
Block a user