Upgraded surveys creation

This commit is contained in:
Pierre
2018-04-22 14:05:14 +02:00
parent ddfe2f4e8e
commit ae7dd0bed3
3 changed files with 27 additions and 25 deletions

View File

@ -25,24 +25,21 @@ class SurveyComponent {
/**
* Create a new survey
*
* @param int $postID The target post for the survey
* @param int $userID The ID of the user creating the survey
* @param string $question The question for the survey
* @param array $answers The answers for the survey
* @param Survey $survey Information about the survey to create
* @return bool True for a sucess / False for a failure
*/
public function create(int $postID, int $userID, string $question, array $answers) : bool {
public function create(Survey $survey) : bool {
//Create the main survey informations
$main_infos = array(
"ID_utilisateurs" => $userID,
"ID_texte" => $postID,
$main_info = array(
"ID_utilisateurs" => $survey->get_userID(),
"ID_texte" => $survey->get_postID(),
"date_creation" => mysql_date(),
"question" => $question
"question" => $survey->get_question()
);
//Try to create survey main informations table
if(!CS::get()->db->addLine($this::SURVEY_INFOS_TABLE, $main_infos))
if(!CS::get()->db->addLine($this::SURVEY_INFOS_TABLE, $main_info))
return false;
//Get the ID of the survey
@ -54,11 +51,11 @@ class SurveyComponent {
//Process each answer
$answers_data = array();
foreach($answers as $line){
foreach($survey->get_choices() as $choice){
$answers_data[] = array(
"ID_sondage" => $surveyID,
"date_creation" => mysql_date(),
"Choix" => $line
"Choix" => $choice->get_name()
);
}
@ -79,7 +76,7 @@ class SurveyComponent {
public function get_infos(int $postID) : Survey {
//Get informations about the survey
$survey = $this->get_survey_infos($postID);
$survey = $this->get_survey_info($postID);
//Check for errors
if(!$survey->isValid())
@ -214,7 +211,7 @@ class SurveyComponent {
* @return Survey Information about the survey, or an invalid object in case
* of failure
*/
private function get_survey_infos(int $postID) : Survey {
private function get_survey_info(int $postID) : Survey {
//Fetch the database
$conditions = "WHERE ID_texte = ?";

View File

@ -348,16 +348,14 @@ class Posts {
* @param string $link_title The title of the link associated with the post (if any)
* @param string $link_description The description of the link associated with the post (if any)
* @param string $link_image The link pointing on the image associated with the post (if any)
* @param string $survey_question The question of the survey associated with the post (if any)
* @param array $survey_answers The answers of the survey associated with the post (if any)
* @param Survey $survey Information about a related survey (if any)
* @return int The ID of the created post or -1 in case of failure
*/
public function create(string $kind_page, int $kind_page_id, int $userID, string $content,
int $visibility, string $kind, int $file_size = 0,
string $file_type = null, string $file_path = null, int $videoID = 0,
int $time_end = 0, string $link_url = null, string $link_title = null,
string $link_description = null, string $link_image = null, string $survey_question = null,
array $survey_answers = array()) : int {
string $link_description = null, string $link_image = null, Survey $survey = null) : int {
//Generate new post informations
//Get the corresponding kind of post for the database
@ -424,7 +422,10 @@ class Posts {
//Create the survey if required
if($kind == $this::POST_KIND_SURVEY){
CS::get()->components->survey->create($postID, $userID, $survey_question, $survey_answers);
//Complete the request
$survey->set_postID($postID);
$survey->set_userID($userID);
components()->survey->create($survey);
}
return $postID;