client = new Client(); } public function goToAdmin(): void { global $rep, $views; try{ require_once($rep . $views['admin']); } catch (PDOException $e) { $error = $e->getMessage(); require_once($rep . $views['form']); } } /** * Permet de créer et d'ajouter une question et de retourner son ID afin de la * reconnaitre facilement dans la suite du code. * * @return int * @throws Exception */ public function addQuestion(): int { $questionContent = $_POST['question']; $type = $_POST['type']; try { $question = new $type(0, $questionContent); $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm'); $form = json_decode($res->getBody()); if (!empty($form)) { $res = $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/addQuestion? content='.$questionContent.'& classQuestion='.get_class($question).'& idForm='.$form[0]['id'] ); return json_decode($res->getBody()); } }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } return -1; } /** * Permet d'ajouter une possibilité de réponse à une question en l'assignant à des catégories. * * @return void * @throws Exception */ public function addResponse(): void { $idQuestion = $_POST['idQuestion']; $response = $_POST['response']; $categories = $_POST['categories']; if ($categories == null) { $categories = []; } try { $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/insertResponseInQuestion? response='.$response.'& categories='.$categories.'& $idQuestion='.$idQuestion ); }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } } /** * Permet de créer un nouveau formulaire en précisant son titre et sa description. * * @return void * @throws Exception */ public function createForm(): void { try { $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm'); $formulaire = json_decode($res->getBody()); if (empty($formulaire)) { $form = new Form(0, "Votre avis nous intéresse !!!", "Description de notre formulaire", array()); $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/insertForm? title='.$form->getTitle().'& description='.$form->getDescription() ); } }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } } /** * Permet d'ajouter une nouvelle catégorie (mot-clef) * * @return void * @throws Exception */ public function addKeyword(): void { $keyword = $_POST['keyword']; try { $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/insertKeyword? keyword='.$keyword ); }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } } /** * Permet de récupérer toutes les catégories existantes. * * @return array * @throws Exception */ public function getCategories(): array { $categories = []; try { $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getAllKeyword'); $res = json_decode($res->getBody()); foreach ($res as $category) { $categories[] = $category["word"]; } }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } return $categories; } /** * Permet de récupérer toutes les questions existantes. * * @return array * @throws Exception */ public function getQuestions(): array { try { $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/existsForm'); if (json_decode($res->getBody())){ $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm'); $idForm = json_decode($res->getBody())[0]["id"]; $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getAllQuestions? idForm='.$idForm ); $questionsArray = json_decode($res->getBody()); return Factory::getBuiltObjects($questionsArray, "Question"); }else{ return array(); } }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } } /** * Permet de récupérer toutes les réponses existantes. * * @return array * @throws Exception */ public function getResponsesCandidate(): array { try { $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getAllListResponsesOfCandidate'); $responsesCandidate = json_decode($res->getBody()); $results = []; foreach ($responsesCandidate as $response) { $res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getDetailsListResponsesOfCandidate? id='.$response["id"] ); $results[] = json_decode($res->getBody()); } return $results; }catch (GuzzleException $g){ throw new Exception($g->getMessage(),$g->getCode(),$g); } } }