mirror of
https://github.com/wiosna-dev/limesurvey-api-client.git
synced 2026-03-12 10:11:49 +01:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c1ee7dfb8 | ||
|
|
59ebe2d236 | ||
|
|
e025b71059 | ||
|
|
b658e04445 | ||
|
|
d4e74bc270 | ||
|
|
8127330642 | ||
|
|
f0c213fb53 | ||
|
|
24f9a237ae | ||
|
|
81ea8e748f | ||
|
|
bab7e25c85 | ||
|
|
6423195cc6 | ||
|
|
b2d4552fb3 | ||
|
|
53d82841e0 | ||
|
|
c8ffcafbd8 | ||
|
|
7551f6db95 |
@@ -12,7 +12,7 @@
|
|||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.6",
|
"php": ">=5.6",
|
||||||
"fguillot/json-rpc": "^1.2",
|
"fguillot/json-rpc": "^1.2",
|
||||||
"wiosna-dev/common-library": "^0.1.0"
|
"wiosna-dev/common-library": "^0.1.9"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"friendsofphp/php-cs-fixer": "^2.6",
|
"friendsofphp/php-cs-fixer": "^2.6",
|
||||||
|
|||||||
@@ -39,6 +39,13 @@ abstract class BaseParticipant extends BaseItem
|
|||||||
*/
|
*/
|
||||||
protected $email;
|
protected $email;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Token of the participant
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $token;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns ID of the participant
|
* Returns ID of the participant
|
||||||
*
|
*
|
||||||
@@ -78,4 +85,14 @@ abstract class BaseParticipant extends BaseItem
|
|||||||
{
|
{
|
||||||
return $this->email;
|
return $this->email;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns token of the participant
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getToken()
|
||||||
|
{
|
||||||
|
return $this->token;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,13 +42,6 @@ class Participant extends BaseParticipant
|
|||||||
*/
|
*/
|
||||||
private $emailStatus;
|
private $emailStatus;
|
||||||
|
|
||||||
/**
|
|
||||||
* Token of the participant
|
|
||||||
*
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $token;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Language of the participant
|
* Language of the participant
|
||||||
*
|
*
|
||||||
@@ -232,16 +225,6 @@ class Participant extends BaseParticipant
|
|||||||
return $this->emailStatus;
|
return $this->emailStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns token of the participant
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getToken()
|
|
||||||
{
|
|
||||||
return $this->token;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns language of the participant
|
* Returns language of the participant
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ class ParticipantShort extends BaseParticipant
|
|||||||
$this->id = (int)$value;
|
$this->id = (int)$value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'token':
|
||||||
|
$this->token = trim($value);
|
||||||
|
break;
|
||||||
|
|
||||||
case 'participant_info':
|
case 'participant_info':
|
||||||
$this->firstName = trim($value['firstname']);
|
$this->firstName = trim($value['firstname']);
|
||||||
$this->lastName = trim($value['lastname']);
|
$this->lastName = trim($value['lastname']);
|
||||||
@@ -52,6 +56,7 @@ class ParticipantShort extends BaseParticipant
|
|||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'tid' => $participant->getId(),
|
'tid' => $participant->getId(),
|
||||||
|
'token' => $participant->getToken(),
|
||||||
'participant_info' => $info,
|
'participant_info' => $info,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ use Meritoo\Common\Collection\Collection;
|
|||||||
use Meritoo\LimeSurvey\ApiClient\Client\Client;
|
use Meritoo\LimeSurvey\ApiClient\Client\Client;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Exception\CannotProcessDataException;
|
use Meritoo\LimeSurvey\ApiClient\Exception\CannotProcessDataException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Exception\MissingSurveySummaryException;
|
use Meritoo\LimeSurvey\ApiClient\Exception\MissingSurveySummaryException;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownInstanceOfResultItem;
|
||||||
|
use Meritoo\LimeSurvey\ApiClient\Exception\UnknownMethodException;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Result\Collection\Participants;
|
use Meritoo\LimeSurvey\ApiClient\Result\Collection\Participants;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Result\Collection\Surveys;
|
use Meritoo\LimeSurvey\ApiClient\Result\Collection\Surveys;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Result\Collection\SurveysSummaries;
|
use Meritoo\LimeSurvey\ApiClient\Result\Collection\SurveysSummaries;
|
||||||
@@ -21,6 +23,7 @@ use Meritoo\LimeSurvey\ApiClient\Result\Item\Survey;
|
|||||||
use Meritoo\LimeSurvey\ApiClient\Result\Item\SurveySummary;
|
use Meritoo\LimeSurvey\ApiClient\Result\Item\SurveySummary;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
use Meritoo\LimeSurvey\ApiClient\Type\MethodType;
|
||||||
use Meritoo\LimeSurvey\ApiClient\Type\ReasonType;
|
use Meritoo\LimeSurvey\ApiClient\Type\ReasonType;
|
||||||
|
use Meritoo\Common\Utilities\Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service that serves surveys and participants of surveys
|
* Service that serves surveys and participants of surveys
|
||||||
@@ -126,6 +129,8 @@ class SurveyService
|
|||||||
* @return Surveys
|
* @return Surveys
|
||||||
*
|
*
|
||||||
* @throws CannotProcessDataException
|
* @throws CannotProcessDataException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function getAllSurveys($onlyActive = false)
|
public function getAllSurveys($onlyActive = false)
|
||||||
{
|
{
|
||||||
@@ -164,6 +169,9 @@ class SurveyService
|
|||||||
* @param bool $shouldBeActive (optional) If is set to true, survey should be active. If it's not, it shouldn't
|
* @param bool $shouldBeActive (optional) If is set to true, survey should be active. If it's not, it shouldn't
|
||||||
* be returned, even if exists. Otherwise - it doesn't matter (default behaviour).
|
* be returned, even if exists. Otherwise - it doesn't matter (default behaviour).
|
||||||
* @return bool
|
* @return bool
|
||||||
|
* @throws CannotProcessDataException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function isExistingSurvey($surveyId, $shouldBeActive = false)
|
public function isExistingSurvey($surveyId, $shouldBeActive = false)
|
||||||
{
|
{
|
||||||
@@ -227,6 +235,9 @@ class SurveyService
|
|||||||
* @return Collection
|
* @return Collection
|
||||||
*
|
*
|
||||||
* @throws CannotProcessDataException
|
* @throws CannotProcessDataException
|
||||||
|
* @throws MissingSurveySummaryException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function getSurveyParticipants($surveyId, $onlyCompleted = false)
|
public function getSurveyParticipants($surveyId, $onlyCompleted = false)
|
||||||
{
|
{
|
||||||
@@ -280,6 +291,9 @@ class SurveyService
|
|||||||
* @param string $lastName Last ame of the participant to add
|
* @param string $lastName Last ame of the participant to add
|
||||||
* @param string $email E-mail address of the participant to add
|
* @param string $email E-mail address of the participant to add
|
||||||
* @return Participant
|
* @return Participant
|
||||||
|
* @throws CannotProcessDataException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function addParticipant($surveyId, $firstName, $lastName, $email)
|
public function addParticipant($surveyId, $firstName, $lastName, $email)
|
||||||
{
|
{
|
||||||
@@ -288,6 +302,7 @@ class SurveyService
|
|||||||
'firstname' => $firstName,
|
'firstname' => $firstName,
|
||||||
'lastname' => $lastName,
|
'lastname' => $lastName,
|
||||||
'email' => $email,
|
'email' => $email,
|
||||||
|
'validfrom' => date('Y-m-d h:i:s'),
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -321,6 +336,10 @@ class SurveyService
|
|||||||
* @param int $surveyId ID of survey
|
* @param int $surveyId ID of survey
|
||||||
* @param string $email E-mail address of the participant
|
* @param string $email E-mail address of the participant
|
||||||
* @return ParticipantShort|null
|
* @return ParticipantShort|null
|
||||||
|
* @throws CannotProcessDataException
|
||||||
|
* @throws MissingSurveySummaryException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function getParticipant($surveyId, $email)
|
public function getParticipant($surveyId, $email)
|
||||||
{
|
{
|
||||||
@@ -343,7 +362,10 @@ class SurveyService
|
|||||||
* @param int $surveyId ID of survey
|
* @param int $surveyId ID of survey
|
||||||
* @return int
|
* @return int
|
||||||
*
|
*
|
||||||
|
* @throws CannotProcessDataException
|
||||||
* @throws MissingSurveySummaryException
|
* @throws MissingSurveySummaryException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
public function getSurveyTokenCount($surveyId)
|
public function getSurveyTokenCount($surveyId)
|
||||||
{
|
{
|
||||||
@@ -374,6 +396,9 @@ class SurveyService
|
|||||||
*
|
*
|
||||||
* @param int $surveyId ID of survey
|
* @param int $surveyId ID of survey
|
||||||
* @return SurveySummary|null
|
* @return SurveySummary|null
|
||||||
|
* @throws CannotProcessDataException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
*/
|
*/
|
||||||
private function getSurveySummary($surveyId)
|
private function getSurveySummary($surveyId)
|
||||||
{
|
{
|
||||||
@@ -395,4 +420,44 @@ class SurveyService
|
|||||||
|
|
||||||
return $surveySummary;
|
return $surveySummary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $surveyId
|
||||||
|
* @param $email
|
||||||
|
* @return bool
|
||||||
|
* @throws CannotProcessDataException
|
||||||
|
* @throws UnknownInstanceOfResultItem
|
||||||
|
* @throws UnknownMethodException
|
||||||
|
*/
|
||||||
|
public function hasSurveyBeenCompletedByEmail($surveyId, $email)
|
||||||
|
{
|
||||||
|
$arguments = [
|
||||||
|
$surveyId,
|
||||||
|
$offset = 0,
|
||||||
|
$limit = 10,
|
||||||
|
$includeUnused = false,
|
||||||
|
['completed'],
|
||||||
|
['email' => $email]
|
||||||
|
];
|
||||||
|
|
||||||
|
try {
|
||||||
|
/** @var Collection $participants */
|
||||||
|
$participants = $this
|
||||||
|
->client
|
||||||
|
->run(MethodType::LIST_PARTICIPANTS, $arguments)
|
||||||
|
->getData(true);
|
||||||
|
|
||||||
|
foreach ($participants as $participant) {
|
||||||
|
if ('N' !== $participant['completed']) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (CannotProcessDataException $exception) {
|
||||||
|
if (ReasonType::NO_PARTICIPANTS_FOUND !== $exception->getReason()) {
|
||||||
|
throw $exception;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user