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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 2x 2x 2x 2x 2x 2x 2x 2x 4x 4x 4x | /** * Creation d'une requête en REST ou WPS * (Factory) * * @module AltiRequestFactory * @alias Gp.Services.Alti.Request.AltiRequestFactory * @private */ import Logger from "../../../Utils/LoggerByDefault"; import ErrorService from "../../../Exceptions/ErrorService"; import AltiRequestREST from "./AltiRequestREST"; import AltiRequestWPS from "./AltiRequestWPS"; var AltiRequestFactory = { /** * interface unique * * @method build * @static * @param {Object} options - options definies dans le composant Alti * * @example * var options = { * httpMethod : 'GET', // GET|POST * onSuccess : function (response) {}, * onError : function (error) {}, * scope : this, * positions : [{lon:, lat:}, {lon:, lat:}], * outputFormat : 'json' // json|xml * sampling : 3, * api : 'REST', // REST|WPS * zonly : false // false|true * }; * */ build : function (options) { // logger var logger = Logger.getLogger("AltiRequestFactory"); logger.trace(["AltiRequestFactory::build()"]); var request = null; // on factorise les options par groupe; // - global, // - param, les params pour les data inputs // - wps, les param du service // - callback var settings = { // ajout des valeurs par defaut spécifiques au service type : options.sampling ? "Profil" : "Elevation", method : options.httpMethod, param : { positions : null, delimiter : null, // FIXME par defaut, on ne le met pas en place car ça fait planter la requête !? indent : null, // par defaut crs : null, // par defaut format : null, // (only to POST) sampling : null, // (only use by Profil) zonly : null, // (only use by Elevation) measures : null // (only use by Elevation) } }; // surcharge des valeurs obligatoires settings.param.positions = options.positions; settings.param.format = options.outputFormat; settings.param.sampling = options.sampling; settings.param.zonly = options.zonly; settings.param.measures = options.measures; settings.param.resource = options.resource; // gestion des callback var bOnError = !!(options.onError !== null && typeof options.onError === "function"); // cast variable to boolean var bOnSuccess = !!(options.onSuccess !== null && typeof options.onSuccess === "function"); var message = null; switch (options.api) { case "REST": // FIXME les exceptions ne sont pas 'catchées' sur le constructeur ! var myReq = new AltiRequestREST(settings); Iif (!myReq.processRequestString()) { message = "Error in process request (rest) !"; if (bOnError) { options.onError.call(options.scope, new ErrorService(message)); return; } throw new Error(message); } request = myReq.requestString; break; case "WPS": // ajout des valeurs par defaut spécifiques au service WPS settings.wps = { service : null, // par defaut version : null, // par defaut identifier : null, // par defaut rawdataoutput : null, // par defaut request : null // par defaut }; request = AltiRequestWPS.build(settings); Iif (!request) { message = "Error in process request (wps) !"; if (bOnError) { options.onError.call(options.scope, new ErrorService(message)); return; } throw new Error(message); } break; default: message = "Type of API is not supported by service (REST or WPS) !"; if (bOnError) { options.onError.call(options.scope, new ErrorService(message)); return; } throw new Error(message); } Eif (bOnSuccess) { options.onSuccess.call(options.scope, request); } return request; } }; export default AltiRequestFactory; |