1. Go to this page and download the library: Download esatisfaction/esat-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
esatisfaction / esat-php example snippets
use \Esat\Esat;
use \Esat\Auth\TokenAuthProvider;
use \Esat\Http\AuthClient;
use \Monolog\Logger;
// Initialize Authentication
$tokenAuthProvider = new TokenAuthProvider('YOUR_TOKEN', 'YOUR_DOMAIN');
$httpClient = new AuthClient($tokenAuthProvider);
// Initialize main Esatisfaction Registry
$esatRegistry = new Esat();
use \Esat\Services\Questionnaires\Questionnaire;
use \Esat\Support\Model\Propel\FilterCriteria;
use \Esat\Support\Model\Propel\Pagination;
use \Monolog\Logger;
// Create Questionnaire Service
$questionnaire = new Questionnaire($esatRegistry, new Logger(), $httpClient);
// Load all questionnaires for my application
$applicationId = '123';
$filterCriteria = (new FilterCriteria())->equal('OwnerApplicationId', $applicationId);
$pagination = (new Pagination())->setMaxPerPage(25)->setPage(1);
$questionnairePager = $questionnaire->getList($filterCriteria, null, $pagination);
// Read all questionnaires
foreach ($questionnairePager->getQuestionnaires() as $questionnaireItem) {
// Get questionnaire display name
echo $questionnaireItem->getDisplayName();
}
// Load a questionnaire by id
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
echo $questionnaireModel->getDisplayName();
}
use \Esat\Services\Questionnaires\Instances\Questionnaire;
use \Monolog\Logger;
// Create Questionnaire Service
$questionnaire = new Questionnaire($esatRegistry, new Logger(), $httpClient);
// Create questionnaire instance, with metadata
$responderMetadata = [
'email' => '[email protected]',
'gender' => 'male'
];
$questionnaireMetadata = [
'transaction_id' => '12345asd',
'transaction_date' => '2019-05-03 14:12'
];
if ($questionnaire->create('YOUR_QUESTIONNAIRE_ID', [], $questionnaireMetadata, $responderMetadata)) {
// Get questionnaire collection url
$collectionUrl = $questionnaire->getQuestionnaire()->getCollectionUrl();
// Send your email with the above url
}
use \Esat\Services\Questionnaires\Instances\Questionnaire;
use \Monolog\Logger;
// Create Questionnaire Service
$questionnaire = new Questionnaire($esatRegistry, new Logger(), $httpClient);
// Load a questionnaire instance
// We always have to load the instance before performing an update or delete operation
$instanceId = 'sadfewf2134d';
if (!$questionnaire->load($instanceId)) {
// Handle error
echo 'Questionnaire instance Not Found';
die;
}
// Update the questionnaire instance
$questionnaire->getQuestionnaire()->setLocale('el');
$questionnaire->getQuestionnaire()->setValidDayes(50);
if (!$questionnaire->update()) {
// Handle error
echo 'Questionnaire instance failed to be updated';
die;
}
// Load another questionnaire instance to delete
// We always have to load the instance before performing an update or delete operation
$instanceId = '23rteg34';
if (!$questionnaire->load($instanceId)) {
// Handle error
echo 'Questionnaire instance Not Found';
die;
}
// Delete the questionnaire instance
if (!$questionnaire->delete()) {
// Handle error
echo 'Questionnaire instance failed to be deleted';
die;
}
use \Esat\Services\Questionnaires\Pipeline;
use \Monolog\Logger;
// Create Pipeline Service
$pipeline = new Pipeline($esatRegistry, new Logger(), $httpClient);
// Get all pipelines for a given questionnaire id
$questionnaireId = 'asdf34rtefdfwe';
$pipelines = $pipeline->getList($questionnaireId);
// Read all pipelines
foreach ($pipelines as $pipelineItem) {
// Get pipeline title
echo $pipelineItem->getTitle();
}
// Load a pipeline by id
if ($pipeline->load('345uyjhg')) {
// Access pipeline data
$pipelineModel = $pipeline->getPipeline();
echo $pipelineModel->getTitle();
}
use \Esat\Services\Questionnaires\Pipelines\Queue;
use \Monolog\Logger;
// Create Queue Service
$queue = new Queue($esatRegistry, new Logger(), $httpClient);
// Prepare queue item parameters
$questionnaireId = 'asdf34rtefdfwe';
$pipelineId = 'a09uherwgfd';
$parameters = [
'responder_channel_identifier' => '[email protected]',
'send_time' => '2019-05-02 12:32',
];
// Create queue item
if (!$queue->create($questionnaireId, $pipelineId, $parameters)) {
// Handle error
echo 'Queue item failed to be created. Error: ' . $queue->getErrorFromLastResponse();
die;
}
use \Esat\Services\Questionnaires\Pipelines\Queue;
use \Monolog\Logger;
// Create Queue Service
$queue = new Queue($esatRegistry, new Logger(), $httpClient);
// Load a queue item
// We always have to load the item before performing an update or delete operation
$itemId = '9867w4wqrefd';
if (!$queue->load($itemId)) {
// Handle error
echo 'Queue item Not Found';
die;
}
// Update the queue item
$queue->getQueueItem()->setLocale('el');
$queue->getQueueItem()->setSendTime('2019-06-03 14:32');
if (!$queue->update()) {
// Handle error
echo 'Queue item failed to be updated';
die;
}
// Load another queue item to delete
// We always have to load the item before performing an update or delete operation
$itemId = '234rweg34';
if (!$queue->load($itemId)) {
// Handle error
echo 'Queue item Not Found';
die;
}
// Delete the queue item
if (!$queue->delete()) {
// Handle error
echo 'Queue item failed to be deleted';
die;
}
use \Esat\Services\Questionnaires\Questionnaire;
use \Monolog\Logger;
// Create Questionnaire Service
$questionnaire = new Questionnaire($esatRegistry, new Logger(), $httpClient);
// Load a questionnaire by id
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
} else {
// Handle the error, get the http response code and error message, if any
$error = '';
switch ($questionnaire->getLastResponse()->getStatusCode()) {
case 500:
$error = 'An unexpected error occurred';
break;
case 404:
$error = 'Questionnaire Not Found';
break;
default:
$error = $questionnaire->getErrorFromLastResponse();
}
// Display error
echo $error;
}
use \Esat\Services\Questionnaires\Questionnaire;
use \Monolog\Logger;
// Create Questionnaire Service
$questionnaire = new Questionnaire($esat, new Logger(), $httpClient);
// DOES NOT hit cache
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
}
// DOES hit cache
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
}
// SKIP cache. From now on, all requests will skip cache.
$questionnaire->setCacheEnabled(false);
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
}
// Enable cache again to restore initial behavior. The following will DO hit cache
$questionnaire->setCacheEnabled(true);
if ($questionnaire->load('456sdfa')) {
// Access questionnaire data
$questionnaireModel = $questionnaire->getQuestionnaire();
}
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.