function test_Env_ParcelPoint($userData) { $result = default_value(); $start = microtime_float(); /* Initialisation */ $env = new Env_ParcelPoint(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); $env->setEnv('test'); $env->constructList = true; $env->getParcelPoint("dropoff_point", "SOGP-C3084"); $env->getParcelPoint("dropoff_point", "SOGP-C3159"); $env->getParcelPoint("dropoff_point", "SOGP-C3065"); $env->getParcelPoint("dropoff_point", "SOGP-C3137"); $env->getParcelPoint("pickup_point", "SOGP-C3059"); $env->getParcelPoint("pickup_point", "SOGP-C3210"); $env->getParcelPoint("pickup_point", "SOGP-C3138"); /* Reception test */ if ($env->curlError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } else { if ($env->respError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($env->respErrorsList as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } else { $result['reception'] = max($result['reception'], OK); $result['reception_info'][count($result['reception_info'])] = 'Reception time : ' . (microtime_float() - $start) . 's'; } } /* Additionals test */ /* Test for the result structure */ $result['additionals'][0]['name'] = 'Structure'; $result['additionals'][0]['state'] = OK; if (count($env->points) != 2) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$points should contains 2 elements, contains ' . count($env->points) . ' instead'; } else { foreach ($env->points as $type => $points) { if (count($env->points[$type]) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$points["' . $type . '"] array is empty'; } else { foreach ($env->points[$type] as $x => $content) { if (!isset($env->points[$type][$x]['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['name'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"name" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['address'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"address" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['city'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"city" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['zipcode'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"zipcode" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['country'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"country" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['description'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"description" not defined in $points["' . $type . '"][' . $x . '] array'; } if (!isset($env->points[$type][$x]['schedule'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"days" not defined in $points["' . $type . '"][' . $x . '] array'; } else { if (count($env->points[$type][$x]['schedule']) != 7) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"days" should contains 7 days info, but contains ' . count($env->contents[$x]['days']) . ' instead'; } } if (isset($env->points[$type][$x]['schedule'])) { foreach ($env->points[$type][$x]['schedule'] as $j => $day) { if (!isset($env->points[$type][$x]['schedule'][$j]['weekday'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"weekday" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['open_am'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"open_am" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['close_am'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"close_am" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['open_pm'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"open_pm" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } if (!isset($env->points[$type][$x]['schedule'][$j]['close_pm'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"close_pm" not defined in $points["' . $type . '"][' . $x . ']["days"][' . $j . '] array'; } } } } } } } $result['duration'] = microtime_float() - $start; return $result; }
} elseif ($cotCl->respError) { echo "La requête n'est pas valide : "; foreach ($cotCl->respErrorsList as $m => $message) { echo "<br />" . $message['message']; } } else { echo "<b>Une erreur pendant l'envoi de la requête </b> : " . $cotCl->curlErrorText; } ?> <h3>LISTE POINT RELAIS API (file: get_point_simple_api.php)</h3> <?php // Exemple de traduction pour les codes d'erreur $codesTranslated = array("http_file_not_found" => "Page n'existe pas", "type_not_correct" => "Please, select the right point type"); // Initialisation de la classe points relais $pointCl = new Env_ParcelPoint(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); // Example avec deux points relais, un pour RelaisColis, l'autre pour Sernam; pour ce faire // on doit mettre $constructList en true $pointCl->constructList = true; // Récupération des points relais, un par un // Chaque point relai est rajouté avec les autres dans $pointCl->points $typesTrad = array("exp" => "pickup_point", "dest" => "dropoff_point"); /* Dans le cas ou aucune variable get n'est specifiée => valeurs par defaut */ $points = isset($_GET['points']) ? $_GET['points'] : 'SOGP-C3084,SOGP-C3159'; $qui = isset($_GET['qui']) ? $_GET['qui'] : 'dest'; $pointsGet = explode(",", $points); foreach ($pointsGet as $p => $point) { $pointCl->getParcelPoint($typesTrad[$qui], trim($point)); } foreach ($pointCl->points[$typesTrad[$qui]] as $p => $point) { ?>
<?php /* Ce document a pour but d'exploiter des différentes méthodes de récupération des points de livraisons ou de retraits * Chaque requête doit se faire une par une, et tous les résultat sont stoqués dans une même variable */ ob_start(); header('Content-Type: text/html; charset=utf-8'); error_reporting(E_ERROR | E_WARNING | E_PARSE); require_once '../utils/header.php'; require_once '../utils/autoload.php'; $parcelPointsStyle = 'style="font-weight:bold;"'; // Exemple de traduction pour les codes d'erreur $codesTranslated = array("http_file_not_found" => "Page n'existe pas", "type_not_correct" => "Please, select the right point type"); // Initialisation de la classe points relais $pointCl = new Env_ParcelPoint(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); // Example avec deux points relais, un pour RelaisColis, l'autre pour Sernam; pour ce faire // on doit mettre $constructList en true $pointCl->constructList = true; // Récupération des points relais, un par un // Chaque point relai est rajouté avec les autres dans $pointCl->points $pointCl->getParcelPoint("dropoff_point", "SOGP-C3084"); $pointCl->getParcelPoint("dropoff_point", "SOGP-C3159"); $pointCl->getParcelPoint("dropoff_point", "SOGP-C3065"); $pointCl->getParcelPoint("dropoff_point", "SOGP-C3137"); $pointCl->getParcelPoint("pickup_point", "SOGP-C3059"); $pointCl->getParcelPoint("pickup_point", "SOGP-C3210"); $pointCl->getParcelPoint("pickup_point", "SOGP-C3138"); // Vérificiation si la requête n'a pas provoqué d'erreur; sinon, on affiche les informations if (!$pointCl->curlError && !$pointCl->respError) { // print_r($pointCl->points); ?>