Implemented SurveyChoice object

This commit is contained in:
Pierre 2018-04-22 08:31:34 +02:00
parent e3f3f8e516
commit 22f8ab582c
3 changed files with 34 additions and 11 deletions

View File

@ -103,9 +103,32 @@ class SurveysController {
$data["creation_time"] = $survey->get_time_sent(); $data["creation_time"] = $survey->get_time_sent();
$data["question"] = $survey->get_question(); $data["question"] = $survey->get_question();
$data["user_choice"] = $survey->get_user_choice(); $data["user_choice"] = $survey->get_user_choice();
$data["choices"] = $survey->get_choices();
//Process survey choices
$data["choices"] = array();
foreach($survey->get_choices() as $choice)
$data["choices"][$choice->get_id()] = self::SurveyChoiceToAPI($choice);
return $data; return $data;
} }
/**
* Turn a SurveyChoice object into an API array
*
* @param SurveyChoice $choice The choice to convert
* @return array Generated array
*/
public static function SurveyChoiceToAPI(SurveyChoice $choice) : array {
$data = array();
$data["choiceID"] = $choice->get_id();
$data["name"] = $choice->get_name();
$data["responses"] = $choice->get_responses();
return $data;
}
} }

View File

@ -252,7 +252,7 @@ class SurveyComponent {
* Get survey choices * Get survey choices
* *
* @param int $surveyID The ID of the target survey * @param int $surveyID The ID of the target survey
* @return array Informations about the choices of the survey * @return array Informations about the choices of the survey (as Survey objects)
*/ */
private function get_survey_choices(int $surveyID) : array { private function get_survey_choices(int $surveyID) : array {
@ -266,8 +266,8 @@ class SurveyComponent {
//Parse results //Parse results
$choices = array(); $choices = array();
foreach($result as $row){ foreach($result as $row){
$choice_infos = $this->parse_survey_choices($row); $choice_infos = $this->dbToChoice($row);
$choices[$choice_infos["choiceID"]] = $choice_infos; $choices[$choice_infos->get_id()] = $choice_infos;
} }
return $choices; return $choices;
@ -278,15 +278,15 @@ class SurveyComponent {
* Parse survey choices from database * Parse survey choices from database
* *
* @param array $db_infos Informations about the choice * @param array $db_infos Informations about the choice
* @return array Usable informations about the surveay * @return SurveyChoice Usable informations about the survey
*/ */
private function parse_survey_choices(array $db_infos) : array { private function dbToChoice(array $db_infos) : SurveyChoice {
$infos = array(); $infos = new SurveyChoice();
$infos['choiceID'] = $db_infos['ID']; $infos->set_id($db_infos['ID']);
$infos['name'] = $db_infos['Choix']; $infos->set_name($db_infos['Choix']);
$infos['responses'] = $this->count_choices_responses($infos['choiceID']); $infos->set_responses($this->count_choices_responses($infos->get_id()));
return $infos; return $infos;

View File

@ -67,7 +67,7 @@ class Survey extends BaseUniqueObjectFromUser {
$this->choices = $choices; $this->choices = $choices;
} }
public function add_choice(array $choice){ public function add_choice(SurveyChoice $choice){
$this->choices[] = $choice; $this->choices[] = $choice;
} }