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; |