Syntax d\'un fichier route
Le fichier route doit être nommé web.routes.php et doit être placé à la racine du controlleur concerné.
'; $html.="return [
// nom de l'API et préfixe de l'URL, est unique au système
'api'=>'apiname'
// la classe publique LARAVEL connecté à cette route, relativement à /app/Http/Controllers/..
,'class'=>'entityOrModules\\path\\to\\publicfunction'
// Les possibles restrictions d'accès au groupe de route (FACULTATIF). Tous les routes de tous les types seront restreint par les accès utilisateur
// Restrictions possibles :
// - sys_admin : administrateur système
// - admin : administrateur client
,'restrictions'=>['sys_admin','admin']
// Les routes GET (pour l'obtention de donnée)
,'get'=>[
[
// Description de la route
'desc'=>'La description détaillée de la route',
// Les possibles restrictions d'accès à la route (FACULTATIF). La route sera restreinte par les accès utilisateur
// Restrictions possibles :
// - sys_admin : administrateur système
// - admin : administrateur client
,'restrictions'=>['sys_admin','admin']
// Reste de l'URL
'url'=>'{dynamicparam}/path/to/something'
// méthode de la classe publique que ça atteindra
,'method'=>'methodName'
// paramètres dynamiques du path de l'URL, et l'expression régulière de contrôle du paramètre
,'params'=>[
'dynamicparam' =>'[PCRE REGEX]',
]
// description des paramètres dynamiques du path de l'URL
,'params_desc'=>[
'dynamicparam' =>'Un paramètre dynamique'
]
// paramètres requis de l'URL (ie mon/url?param=paramvalue)
,'get_params'=>[
'param' =>'[PCRE REGEX]'
]
// paramètres facultatifs de l'URL
,'opt_get_params'=>[
'param2' =>'[PCRE REGEX]'
]
// description des paramètres de l'URL
,'get_params_desc'=>[
'param' =>'description de param',
'param2' =>'description de param2'
]
],
]
// Les routes POST (pour la création d'éléments uniquement)
,'post'=>[
[
// Description de la route
'desc'=>'La description détaillée de la route',
// Les possibles restrictions d'accès à la route (FACULTATIF). La route sera restreinte par les accès utilisateur
// Restrictions possibles :
// - sys_admin : administrateur système
// - admin : administrateur client
,'restrictions'=>['sys_admin','admin']
// Reste de l'URL
'url'=>'{dynamicparam}/path/to/something'
// méthode de la classe publique que ça atteindra
,'method'=>'methodName'
// paramètres dynamiques du path de l'URL, et l'expression régulière de contrôle du paramètre
,'params'=>[
'dynamicparam' =>'[PCRE REGEX]',
]
// description des paramètres dynamiques du path de l'URL
,'params_desc'=>[
'dynamicparam' =>'Un paramètre dynamique'
]
// Paramètre du POST
,'post_params'=>[
'param' =>'[PCRE REGEX ou \"JSON\"]',
'jsonex' =>'[PCRE REGEX ou \"JSON\"]',
]
// Paramètres optionnels du POST
,'opt_post_params'=>[
'param2' =>'[PCRE REGEX ou \"JSON\"]'
]
// description des paramètres du POST
,'post_params_desc'=>[
'param' =>'description de param',
'param2' =>'description de param2',
'jsonex' =>'Un tableau PHP représentant l\'objet JSON',
]
],
]
// Les routes PATCH (pour la mise à jour d'éléments uniquement)
,'patch'=>[
[
// Description de la route
'desc'=>'La description détaillée de la route',
// Les possibles restrictions d'accès à la route (FACULTATIF). La route sera restreinte par les accès utilisateur
// Restrictions possibles :
// - sys_admin : administrateur système
// - admin : administrateur client
,'restrictions'=>['sys_admin','admin']
// Reste de l'URL
'url'=>'{dynamicparam}/path/to/something'
// méthode de la classe publique que ça atteindra
,'method'=>'methodName'
// paramètres dynamiques du path de l'URL, et l'expression régulière de contrôle du paramètre
,'params'=>[
'dynamicparam' =>'[PCRE REGEX ou \"JSON\"]',
]
// description des paramètres dynamiques du path de l'URL
,'params_desc'=>[
'dynamicparam' =>'Un paramètre dynamique'
]
// Paramètre du PATCH
,'post_params'=>[
'param' =>'[PCRE REGEX]'
]
// Paramètres optionnels du PATCH
,'opt_post_params'=>[
'param2' =>'[PCRE REGEX ou \"JSON\"]'
'jsonex' =>'[PCRE REGEX ou \"JSON\"]',
]
// description des paramètres du PATCH
,'post_params_desc'=>[
'param' =>'description de param',
'param2' =>'description de param2'
'jsonex' =>'Un tableau PHP représentant l\'objet JSON',
]
],
]
// Les routes DELETE (pour la suppression d'éléments uniquement)
,'delete'=>[
[
// Description de la route
'desc'=>'La description détaillée de la route',
// Les possibles restrictions d'accès à la route (FACULTATIF). La route sera restreinte par les accès utilisateur
// Restrictions possibles :
// - sys_admin : administrateur système
// - admin : administrateur client
,'restrictions'=>['sys_admin','admin']
// Reste de l'URL
'url'=>'{dynamicparam}/path/to/something'
// méthode de la classe publique que ça atteindra
,'method'=>'methodName'
// paramètres dynamiques du path de l'URL, et l'expression régulière de contrôle du paramètre
,'params'=>[
'dynamicparam' =>'[PCRE REGEX]',
]
// description des paramètres dynamiques du path de l'URL
,'params_desc'=>[
'dynamicparam' =>'Un paramètre dynamique'
]
// Paramètre du DELETE
,'post_params'=>[
'param' =>'[PCRE REGEX]'
]
// Paramètres optionnels du DELETE
,'opt_post_params'=>[
'param2' =>'[PCRE REGEX]'
]
// description des paramètres du DELETE
,'post_params_desc'=>[
'param' =>'description de param',
'param2' =>'description de param2'
]
],
]
];
return [
'api'=>'articlemanager'
,'class'=>'Modules\ArticleManager\ArticleManagerPublic'
,'get'=>[
[
'desc'=>'Récupère les prix de l\'article par la quantité',
'url'=>'{idtask}/getpricewithqty'
,'method'=>'getPriceWithQty'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'get_params'=>[
'thpId' =>'\d+',
'qty' =>'\d+\.?\d*',
'discountId' =>'\d+',
'productUnitId' =>'\d+',
]
,'get_params_desc'=>[
'thpId' =>'Identifiant de ligne de tâche',
'qty' =>'Quantité',
'discountId' =>'Identifant remise',
'productUnitId' =>'Identifiant de l\'unité du produit',
]
],
[
'desc'=>'Récupère les prix de l\'article par un prix donné',
'url'=>'{idtask}/getpricewithprice'
,'method'=>'getPriceWithPrice'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'get_params'=>[
'thpId' =>'\d+',
'qty' =>'\d+\.?\d*',
'discountId' =>'\d+',
'productUnitId' =>'\d+',
'priceType' =>'unitprice|packprice',
'price' =>'\d+\.?\d*',
]
,'get_params_desc'=>[
'thpId' =>'Identifiant de ligne de tâche',
'qty' =>'Quantité',
'discountId' =>'Identifant remise',
'productUnitId' =>'Identifiant de l\'unité du produit',
'priceType' =>'Le type de price souhaite : prix unitaire, prix conditionnement',
'price' =>'Prix',
]
],
[
'desc'=>'Recherche des articles',
'url'=>'{idtask}/search'
,'method'=>'search'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'get_params'=>[
'search' =>'\w+',
]
,'get_params_desc'=>[
'search' =>'Terme de la recherche',
]
],
[
'desc'=>'Récupère un objet de grille Vgrid',
'url'=>'{idtask}/list/{gridType}/'
,'method'=>'getProductList'
,'params'=>[
'idtask' =>'\d+',
'gridType' =>'productall|productfromprice|alreadyemployed|compmodels|devices',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche',
'gridType' =>'Le type de grille souhaité : Tous les produits, Produit des tarifs, Produits déjà utilisés, Composant modèles, Machines',
]
],
]
,'post'=>[
[
'desc'=>'Ajoute un article en fonction de son type',
'url'=>'{idtask}/addarticle/'
,'method'=>'addArticle'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'pid' =>'\d+',
'type' =>'\w+',
'uid' =>'\d+',
]
,'post_params_desc'=>[
'pid' =>'Identifiant produit',
'type' =>'Type de produit : product, device',
'uid' =>'Identifiant de l\'unité',
]
],
[
'desc'=>'test JSON',
'url'=>'equipment'
,'method'=>'addArticle'
,'params'=>[
// 'idtask' =>'\d+',
]
,'params_desc'=>[
// 'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'data' =>'JSON',
]
,'post_params_desc'=>[
'data'=>[
'external_id'=>'Id externe (ID SAGE)',
'code'=>'Code de la société [REQUIRED]',
'name'=>'Nom de la société',
'email'=>'Email de la société',
'web_site'=>'Adresse web de la société',
'siret'=>'Siret de la société',
'parent_id'=>'Id de la société mère (centrale d\'achat)',
'parent_code'=>'Code de la société mère (centrale d\'achat)',
'parent_external_id'=>'Id externe de la société mère (centrale d\'achat)',
'contacts'=>[
[
'external_id'=>'Id externe (ID SAGE)',
'code'=>'Code du contact [REQUIRED]',
'name'=>'Nom du contact',
'first_name'=>'Prénom du contact',
'phone'=>'Téléphone du contact',
'email'=>'Email du contact',
'linkedin'=>'Adresse LinkedIn du contact',
],
[
'external_id'=>'Id externe (ID SAGE)',
'code'=>'Code du contact [REQUIRED]',
'name'=>'Nom du contact',
'first_name'=>'Prénom du contact',
'phone'=>'Téléphone du contact',
'email'=>'Email du contact',
'linkedin'=>'Adresse LinkedIn du contact',
]
],
'locations'=>[
'!COMMENT!_1'=>'Code adresse principale, Une seule adresse principale [REQUIRED]',
'main'=>[
'external_id'=>'Id externe (ID SAGE)',
'address1'=>'Zone d\'adresse 1 de l\'adresse principale',
'address2'=>'Zone d\'adresse 2 de l\'adresse principale',
'postal'=>'Code postale de l\'adresse principale',
'city'=>'Ville de l\'adresse principale',
'country'=>'Pays de l\'adresse principale',
'phone'=>'Téléphone de l\'adresse principale',
'email'=>'Email de l\'adresse principale',
],
'!COMMENT!_2'=>'Code adresse de livraison, Peut y en avoir plusieurs ',
'delivery'=>[
'external_id'=>'Id externe (ID SAGE)',
'address1'=>'Zone d\'adresse 1 de l\'adresse principale',
'address2'=>'Zone d\'adresse 2 de l\'adresse principale',
'postal'=>'Code postale de l\'adresse principale',
'city'=>'Ville de l\'adresse principale',
'country'=>'Pays de l\'adresse principale',
'phone'=>'Téléphone de l\'adresse principale',
'email'=>'Email de l\'adresse principale',
]
],
],
]
],
]
,'patch'=>[
[
'desc'=>'Met à jour un article',
'url'=>'{idtask}/updatearticle/'
,'method'=>'updateArticle'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'thpId'=>'\d+',
'unitId'=>'\d+',
'unitPrice'=>'\d+',
'packPrice'=>'\d+',
'name'=>'\w+',
'qty'=>'\d+\.?\d*',
]
,'opt_post_params'=>[
'deliveryDate'=>'\d{4}\/\d{2}\/\d{2}(?>\s?\d{2}:\d{2}|)',
'discountId'=>'\d+',
]
,'post_params_desc'=>[
'thpId'=>'Identifiant ligne de tâche',
'unitId'=>'Identifiant de l\'unité',
'unitPrice'=>'Prix unitaire',
'packPrice'=>'Prix de conditionnement',
'name'=>'Nom du produit',
'qty'=>'Quantité',
'deliveryDate'=>'Date de livraison',
'discountId'=>'Identifiant de la remise',
]
],
[
'desc'=>'Change l\'ordre d\'une ligne',
'url'=>'{idtask}/moveline/'
,'method'=>'moveLine'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'type' =>'product|comment',
'index' =>'\d+',
'oid' =>'\d+',
]
,'post_params_desc'=>[
'type' =>'Type de ligne : produit ou commentaire',
'index' =>'Ordre de la ligne dans la liste',
'oid' =>'Identifiant de la ligne',
]
],
[
'desc'=>'Met à jour un commentaire',
'url'=>'{idtask}/updatecomment/'
,'method'=>'changeComment'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'txt' =>'\w+',
'commentId' =>'\d+',
]
,'post_params_desc'=>[
'txt' =>'Text du commentaire',
'commentId' =>'Identifiant du commentaire',
]
],
]
,'delete'=>[
[
'desc'=>'Supprime un article',
'url'=>'{idtask}/deletearticle/'
,'method'=>'delArticle'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'thpId' =>'\d+',
]
,'post_params_desc'=>[
'thpId' =>'Identifiant ligne de tâche',
]
],
[
'desc'=>'Supprime un commentaire',
'url'=>'{idtask}/deletecomment/'
,'method'=>'delComment'
,'params'=>[
'idtask' =>'\d+',
]
,'params_desc'=>[
'idtask' =>'Identifiant tâche'
]
,'post_params'=>[
'thcId' =>'\d+',
]
,'post_params_desc'=>[
'thpId' =>'Identifiant ligne de tâche',
]
],
]
];