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; }
// 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) { ?> <p> <input name="pointrelais-<?php echo $qui; ?> " type="radio" value="<?php echo $point["name"]; ?> |||<?php echo $point["address"]; ?> |||<?php
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); ?> <p><b>Les points de retrait:</b></p> <ul> <?php foreach ($pointCl->points["pickup_point"] as $point) { ?>