mirror of
https://github.com/wiosna-dev/limesurvey-api-client.git
synced 2026-03-12 02:11:45 +01:00
Compare commits
12 Commits
bugfix/UW-
...
prototype/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c08515918 | ||
|
|
e025b71059 | ||
|
|
b658e04445 | ||
|
|
d4e74bc270 | ||
|
|
8127330642 | ||
|
|
f0c213fb53 | ||
|
|
24f9a237ae | ||
|
|
81ea8e748f | ||
|
|
bab7e25c85 | ||
|
|
6423195cc6 | ||
|
|
b2d4552fb3 | ||
|
|
53d82841e0 |
@@ -12,7 +12,7 @@
|
||||
"require": {
|
||||
"php": ">=5.6",
|
||||
"fguillot/json-rpc": "^1.2",
|
||||
"wiosna-dev/common-library": "^0.1.0"
|
||||
"wiosna-dev/common-library": "^0.1.9"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "^2.6",
|
||||
|
||||
@@ -57,9 +57,14 @@ class Result
|
||||
* class constants.
|
||||
* @param array $rawData Raw data returned by the LimeSurvey's API
|
||||
*/
|
||||
public function __construct($method, array $rawData)
|
||||
public function __construct($method, $rawData)
|
||||
{
|
||||
$this->method = MethodType::getValidatedMethod($method);
|
||||
|
||||
if (true === is_string($rawData)) {
|
||||
$rawData = base64_decode($rawData);
|
||||
$rawData = json_decode($rawData, true);
|
||||
}
|
||||
$this->setRawDataAndStatus($rawData);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,8 @@ use Meritoo\Common\Collection\Collection;
|
||||
use Meritoo\LimeSurvey\ApiClient\Client\Client;
|
||||
use Meritoo\LimeSurvey\ApiClient\Exception\CannotProcessDataException;
|
||||
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\Surveys;
|
||||
use Meritoo\LimeSurvey\ApiClient\Result\Collection\SurveysSummaries;
|
||||
@@ -126,6 +128,8 @@ class SurveyService
|
||||
* @return Surveys
|
||||
*
|
||||
* @throws CannotProcessDataException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function getAllSurveys($onlyActive = false)
|
||||
{
|
||||
@@ -160,10 +164,13 @@ class SurveyService
|
||||
/**
|
||||
* Returns information if survey with given ID exists
|
||||
*
|
||||
* @param int $surveyId ID of survey to verify
|
||||
* @param int $surveyId ID of survey to verify
|
||||
* @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).
|
||||
* @return bool
|
||||
* @throws CannotProcessDataException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function isExistingSurvey($surveyId, $shouldBeActive = false)
|
||||
{
|
||||
@@ -221,14 +228,17 @@ class SurveyService
|
||||
/**
|
||||
* Returns participants of given survey
|
||||
*
|
||||
* @param int $surveyId ID of survey
|
||||
* @param int $surveyId ID of survey
|
||||
* @param bool $onlyCompleted (optional) If is set to true, participants who completed survey are returned only.
|
||||
* Otherwise - all (default behaviour).
|
||||
* @return Collection
|
||||
*
|
||||
* @throws CannotProcessDataException
|
||||
* @throws MissingSurveySummaryException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function getSurveyParticipants($surveyId, $onlyCompleted = false, array $criteria = [])
|
||||
public function getSurveyParticipants($surveyId, $onlyCompleted = false)
|
||||
{
|
||||
$hasSurvey = $this
|
||||
->allParticipants
|
||||
@@ -244,8 +254,6 @@ class SurveyService
|
||||
$offset,
|
||||
$limit,
|
||||
$includeUnused,
|
||||
$attributes = false,
|
||||
$criteria
|
||||
];
|
||||
|
||||
try {
|
||||
@@ -277,11 +285,14 @@ class SurveyService
|
||||
/**
|
||||
* Adds participant with given data to survey with given ID
|
||||
*
|
||||
* @param int $surveyId ID of survey
|
||||
* @param int $surveyId ID of survey
|
||||
* @param string $firstName First name 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 $lastName Last ame of the participant to add
|
||||
* @param string $email E-mail address of the participant to add
|
||||
* @return Participant
|
||||
* @throws CannotProcessDataException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function addParticipant($surveyId, $firstName, $lastName, $email)
|
||||
{
|
||||
@@ -320,9 +331,13 @@ class SurveyService
|
||||
/**
|
||||
* Returns short data of one participant with given e-mail (participant of given survey)
|
||||
*
|
||||
* @param int $surveyId ID of survey
|
||||
* @param string $email E-mail address of the participant
|
||||
* @param int $surveyId ID of survey
|
||||
* @param string $email E-mail address of the participant
|
||||
* @return ParticipantShort|null
|
||||
* @throws CannotProcessDataException
|
||||
* @throws MissingSurveySummaryException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function getParticipant($surveyId, $email)
|
||||
{
|
||||
@@ -345,7 +360,10 @@ class SurveyService
|
||||
* @param int $surveyId ID of survey
|
||||
* @return int
|
||||
*
|
||||
* @throws CannotProcessDataException
|
||||
* @throws MissingSurveySummaryException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
public function getSurveyTokenCount($surveyId)
|
||||
{
|
||||
@@ -376,6 +394,9 @@ class SurveyService
|
||||
*
|
||||
* @param int $surveyId ID of survey
|
||||
* @return SurveySummary|null
|
||||
* @throws CannotProcessDataException
|
||||
* @throws UnknownInstanceOfResultItem
|
||||
* @throws UnknownMethodException
|
||||
*/
|
||||
private function getSurveySummary($surveyId)
|
||||
{
|
||||
@@ -397,4 +418,71 @@ class SurveyService
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
public function getResponseIds($surveyId, $token)
|
||||
{
|
||||
$arguments = [
|
||||
$surveyId,
|
||||
$token,
|
||||
];
|
||||
|
||||
return $this
|
||||
->client
|
||||
->run('get_response_ids', $arguments)
|
||||
->getData(true);
|
||||
}
|
||||
|
||||
public function exportResponsesByToken($surveyId, $token)
|
||||
{
|
||||
$arguments = [
|
||||
$surveyId,
|
||||
'json',
|
||||
$token,
|
||||
];
|
||||
|
||||
return $this
|
||||
->client
|
||||
->run('export_responses_by_token', $arguments)
|
||||
->getData(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +93,10 @@ class MethodType extends BaseType
|
||||
*/
|
||||
const LIST_USERS = 'list_users';
|
||||
|
||||
const EXPORT_RESPONSES_BY_TOKEN = 'export_responses_by_token';
|
||||
|
||||
const GET_RESPONSE_IDS = 'get_response_ids';
|
||||
|
||||
/**
|
||||
* Returns validated name of method to call or throws an exception (if method is incorrect)
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user