Gestion du JSON auto par le `ModuleManager`, si pas d'erreur lors du décodage du json, on prend la valeur en json

This commit is contained in:
xdrm-brackets 2016-05-02 15:09:17 +02:00
parent d56a1cced5
commit da69d09579
4 changed files with 18 additions and 14 deletions

View File

@ -191,10 +191,10 @@
"description": "Enregistre les données d'une enquête téléphonique.",
"permissions": ["admin"],
"parameters": {
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "json" },
"contacts": { "description": "Données des contacts de l'enquête.", "type": "json" },
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "json" },
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "json" }
"subject": { "description": "Données sur le sujet de l'enquête.", "type": "array" },
"contacts": { "description": "Données des contacts de l'enquête.", "type": "array<array>" },
"mini": { "description": "Mini fiches relations sur les contacts de l'enquête.", "type": "array<array>" },
"fiches": { "description": "Fiches relation sur les plus proches contacts de l'enquête.", "type": "array<array>" }
}
}

4
js/lib/api-min.js vendored
View File

@ -1,3 +1,3 @@
function APIClass(b){this.target=b}
APIClass.prototype={xhr:[],send:function(b,c,f){b.hasOwnProperty("path")||c({ModuleError:4});for(var a=0;a<this.xhr.length;a++)4==this.xhr[a].readyState&&(this.xhr=this.xhr.slice(0,a-1).concat(this.xhr.slice(a,this.xhr.length-1)));this.xhr.push(null);a=this.xhr.length-1;this.xhr[a]=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHttpRequest");console.log(b);var d=this;this.xhr[a].onreadystatechange=function(){if(4==d.xhr[a].readyState)if(-1<[0,200].indexOf(d.xhr[a].status))try{c(JSON.parse(d.xhr[a].responseText))}catch(b){c({ModuleError:1})}else c({ModuleError:3})};
var g=new FormData,e;for(e in b)g.append(e,b[e]);this.xhr[a].open("POST",this.target,!0);null!=f&&this.xhr[a].setRequestHeader("Authorization","Digest "+f);this.xhr[a].send(g)}};
APIClass.prototype={xhr:[],send:function(b,d,g){b.hasOwnProperty("path")||d({ModuleError:4});for(var a=0;a<this.xhr.length;a++)4==this.xhr[a].readyState&&(this.xhr=this.xhr.slice(0,a-1).concat(this.xhr.slice(a,this.xhr.length-1)));this.xhr.push(null);a=this.xhr.length-1;this.xhr[a]=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHttpRequest");console.log(b);var e=this;this.xhr[a].onreadystatechange=function(){if(4==e.xhr[a].readyState)if(-1<[0,200].indexOf(e.xhr[a].status))try{d(JSON.parse(e.xhr[a].responseText))}catch(b){d({ModuleError:1})}else d({ModuleError:3})};
var f=new FormData,c;for(c in b)"path"==c?f.append(c,b[c]):f.append(c,JSON.stringify(b[c]));this.xhr[a].open("POST",this.target,!0);null!=g&&this.xhr[a].setRequestHeader("Authorization","Digest "+g);this.xhr[a].send(f)}};

View File

@ -75,7 +75,8 @@ APIClass.prototype = {
// On ajoute tous les attributs en POST
for( var key in pRequest )
form.append(key, pRequest[key]);
if( key == 'path' ) form.append(key, pRequest[key]);
else form.append(key, JSON.stringify(pRequest[key]));
this.xhr[i].open('POST', this.target, true);

View File

@ -192,8 +192,16 @@
// On retire le @path de @params
unset($params['path']);
/* [3] On met les paramètres JSON en JSON (si ils décodent sans erreur)
=========================================================*/
foreach($params as $name=>$value){
$json = json_decode( $value, true );
// Si aucune erreur, on affecte la valeur
if( $json != null )
$params[$name] = $json;
}
/* [3] On retourne une instance de <ModuleRequest>
/* [4] On retourne une instance de <ModuleRequest>
=========================================================*/
// On cree notre requete avec le token
return new ModuleRequest($post['path'], $params, $token);
@ -366,14 +374,9 @@
/* (6) Si le paramètre est renseigné */
}else{
}else
// Si la verification est fausse, on retourne faux
if( !Database::check($paramsdata['type'], $params[$name]) ) return false;
// Si c'est du JSON, on le décode
if( $paramsdata['type'] == 'json' )
$params[$name] = json_decode( $params[$name], true );
}
}
/* [3] Gestion du retour, si tout s'est bien passe