Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | 1x | import Logger from "../../../Utils/LoggerByDefault";
import MRes from "../../../Utils/MessagesResources";
import ErrorService from "../../../Exceptions/ErrorService";
import ProcessIsoCurveResponse from "./model/ProcessIsoCurveResponse";
/**
* Factory pour générer une reponse JSON à partir d'un JSON
* (Factory)
*
* @module ProcessIsoCurveResponseFactory
* @alias Gp.Services.ProcessIsoCurve.Response.ProcessIsoCurveResponseFactory
* @private
*/
var ProcessIsoCurveResponseFactory = {
/**
* interface unique
*
* @method build
* @static
* @param {Object} options - options definies dans le composant ProcessIsoCurve
*
* @example
* var options = {
* response :
* outputFormat :
* rawResponse :
* scope :
* onSuccess :
* onError :
* };
*
*/
build : function (options) {
// logger
var logger = Logger.getLogger("ProcessIsoCurveResponseFactory");
logger.trace(["ProcessIsoCurveResponseFactory::build()"]);
var data = null;
if (options.response) {
if (options.rawResponse) {
logger.trace("analyze response : raw");
data = options.response;
} else {
logger.trace("analyze response : json");
var JSONResponse;
if (typeof options.response === "string") {
JSONResponse = JSON.parse(options.response);
} else {
JSONResponse = options.response;
}
// analyse de la reponse
// création de l'objet de réponse
data = new ProcessIsoCurveResponse();
// remplissage de l'objet créé avec les attribtuts de la réponse du service
if (JSONResponse) {
if (JSONResponse.costType === "distance") {
data.time = "";
data.distance = JSONResponse.costValue;
} else {
data.time = JSONResponse.costValue;
data.distance = "";
}
data.message = "";
data.id = "";
data.srs = JSONResponse.crs;
data.geometry = JSONResponse.geometry;
var coords = JSONResponse.point.split(",");
if (data.location) {
data.location.x = coords[0];
data.location.y = coords[1];
}
} else {
options.onError.call(options.scope, new ErrorService(MRes.getMessage("SERVICE_RESPONSE_ANALYSE", options.response)));
return;
}
// info : en cas de problèmes de droits (clé invalide ou autre), la réponse est au format XML !!
// ex. <ExceptionReport><Exception exceptionCode="MissingParameter">Key does not exist or has expired</Exception></ExceptionReport>
// mais le statut est 403, l'erreur est donc remontée plus tôt.
if (data.exceptionReport) {
options.onError.call(options.scope, new ErrorService({
message : MRes.getMessage("SERVICE_RESPONSE_EXCEPTION", data.exceptionReport),
type : ErrorService.TYPE_SRVERR,
status : 200
}));
return;
}
}
} else {
// si la réponse est vide, on appelle le callback d'erreur
options.onError.call(options.scope, new ErrorService(MRes.getMessage("SERVICE_RESPONSE_EMPTY")));
return;
}
// si tout s'est bien passé, on appelle le callback de succès
options.onSuccess.call(options.scope, data);
}
};
export default ProcessIsoCurveResponseFactory;
|