Tests d'éligibilité

Comment faire des tests d’éligibilités depuis l’API

Prérequis

Présentation

Le test d’éligibilité est asynchrone, une fois la demande envoyée vous obtenez un identifiant qui vous permet de suivre le traitement de la requête et d’obtenir les résultats quand celle-ci sera terminée.

participant Client as client
participant PrizzAPI as prizz
entity EligibilityProcess as elig
database SIG as sig

group Create query
client -> prizz : CreateEligibility
prizz -> elig : create process
activate elig
prizz -> client : return eligibility_id
end

group Fetch #1
client -> prizz : q1
prizz -> client : answer with pending status
end group

elig -> sig : query
sig -> elig : results
elig -> elig : make offers
deactivate elig

group Fetch #2
client -> prizz : q2
prizz -> client : answer with done status and results
end group

Première étape : connaître son ID client

Pour faire un test nous avons besoin de savoir pour quel client il est effectué. Votre token pouvant être associé à plusieurs entreprises. Cela nous permet de trouver les bon contrats et tarifs associés.

Vous devez donc connaître l’id de votre client, pour cela vous pouvez interroger cette route.

foreach ($prizzTelecom->getClientLegalEntities()->getItems() as $legalEntity) {
    echo $legalEntity->getName() . " - " . $legalEntity->getId() . "\n";
}

// output :
// PRIZZ TELECOM - 32
//
// l'id a utiliser est 32
curl --request GET \
     --location "${url_api}/external-api/v2/client_legal_entities" \
     --header "Authorization: Token ${token}" \
     | jq '.items[]|{name:.name, id:.id}'

# output:
# {
#  "name": "PRIZZ TELECOM",
#  "id": 32
# }

Parcourez le tableau items de la réponse afin de localiser le client pour lequel vous souhaitez effectuer un test d’éligibilité, notez son id (que nous appellerons {id_client} pour la suite de cet exemple).

Vous pouvez en faire un élément de configuration de votre projet, cet identifiant est stable.

Créer un test d’éligibilité par adresse

Vous pouvez maintenant créer un nouveau test d’éligibilité. L’adresse, est au format texte. Elle doit être la plus précise possible et avoir un numéro dans la voie.

Documentation de la méthode.

$eligResult = $prizzTelecom->createEligibility(
    "111 Rue Réaumur, 75002 Paris",
    $legalEntity->getId() // 32
);

// Output :
// Array
// (
//    [0] => 43
// )
export address="111 Rue Réaumur, 75002 Paris";
export id_client=32;
curl --request POST \
     --location "${url_api}/external-api/v2/eligibility" \
     --header "Authorization: Token ${token}" \
     --header "Content-Type: application/json" \
     --data "{\"address\": \"${address}\", \"clientId\": ${id_client}}"

Vous devriez récupérer l’id du test effectué dans la partie responses, 43 dans le cas présent. Obtenir un id ne dit pas que l’adresse est éligible, mais qu’elle va être testée.

Créer un test d’éligibilité par latitude et longitude

Pour faire un test avec des coordonnées longitude, latitude il suffit de ne pas remplir le paramètre address mais lon et lat.

$eligResult = $prizzTelecom->createEligibility(
    client_id: $myClientLegalEntity->getId(),
    lon: 2.326099666185542,
    lat: 48.867587467406395
);

// Output :
// Array
// (
//    [0] => 43
// )
lon="2.326099666185542";
lat="48.867587467406395"
id_client=32;
curl --request POST \
     --location "${url_api}/external-api/v2/eligibility" \
     --header "Authorization: Token ${token}" \
     --header "Content-Type: application/json" \
     --data "{\"lon\": \"${lon}\", \"lat\": \"${lat}\", \"clientId\": ${id_client}}"

Obtenir le résultat du test

Comme indiqué précédemment, les tests d’éligibilité étant asynchrones, vous n’aurez pas le résultat lors de la création de la requête d’éligibilité. Il vous faut faire appel cette méthode pour obtenir le résultat : méthode.

$resp = $prizzTelecom->getEligibility(45);

foreach ($resp->getResponse() as $resp) {
    echo $resp->getCode() .
        " : " . $resp->getRcMin() / 100 .
        " -> " . $resp->getRcMax() / 100 . " " .
        "pricelist #" . $resp->getPriceListId() . "\n";
}

// Output :
// FON EVENTS : 5400 -> 5400 pricelist #4
// FON MAN : 350 -> 400 pricelist #7
// L2 Basique : 99 -> 200 pricelist #13
// L2 EVENT : 4500 -> 5050 pricelist #18
// L2 PREMIUM : 119 -> 699 pricelist #20
curl --request GET \
     --location "${url_api}/external-api/v2/eligibility/${id_test}" \
     --header "Authorization: Token ${token}"

En cas de succès, vous trouverez le résultat de l’éligibilité dans la partie response du retour.