/** * This endpoint create an interview. It return the new interview if success. * @param $param string[] * @throws InvalidRequestError * @return Applicant */ public static function create($param) { if (!isset($param["mail"]) || !isset($param["alert"]) || !isset($param["lang"]) || !isset($param["deadline"])) { $missing = array(); !isset($param["mail"]) ? $missing[] = "mail" : null; !isset($param["alert"]) ? $missing[] = "alert" : null; !isset($param["lang"]) ? $missing[] = "lang" : null; !isset($param["deadline"]) ? $missing[] = "deadline" : null; throw new InvalidRequestError("missing param: " . implode($missing, ", ")); } if (isset($param["questions"]) && is_array($param["questions"]) && count($param["questions"]) != 0) { foreach ($param["questions"] as $q) { if (!isset($q["content"]) || !isset($q["readingTime"]) || !isset($q["answerTime"]) || !isset($q["number"])) { $missing = array(); if (!isset($q["content"])) { $missing[] = "content"; } if (!isset($q["readingTime"])) { $missing[] = "readingTime"; } if (!isset($q["answerTime"])) { $missing[] = "answerTime"; } if (!isset($q["number"])) { $missing[] = "number"; } throw new InvalidRequestError("missing param: " . implode($missing, ", ")); } else { if (!in_array($q["readingTime"], Applicant::$acceptedValue) || !in_array($q["answerTime"], Applicant::$acceptedValue)) { throw new InvalidRequestError("invalid duration of readingTime or answerTime"); } } } } else { if (!isset($param["interview"])) { throw new InvalidRequestError("missing param: interview and questions"); } } $app = ApiRequest::post("/api/v1/applicant/", $param); $questions = array(); foreach ($app["questions"] as $q) { $questions[] = new Question($q["content"], $q["readingTime"], $q["answerTime"], $q["number"]); } $responses = array(); foreach ($app["responses"] as $q) { $responses[] = new Response($q["file"], $q["duration"], $q["fileSize"], $q["number"], $q["thumbnail"]); } return new Applicant($app["_id"], $app["mail"], $questions, $responses, $app["interview"], $app["dateBegin"], $app["dateEnd"], $app["dateAnswer"], $app["emailView"], $app["linkClicked"], $app["firstname"], $app["lastname"], $app["lang"], $app["videoLink"], $app["text"], $app["deleted"], $app["callback"], $app["status"]); }
protected function _request($data, $post = array()) { $response = ApiRequest::post ( $this->head_url, $this->apiKey, $this->apiSecret, $data, $post ); $result = json_decode ( $response, true ); if (true == $this->debug) { $this->_debug($post,$response); } return $result; }
/** * This endpoint create an interview. It return the new interview if success. * @param $param string[] * @throws InvalidRequestError * @return Interview */ public static function create($param) { if (!isset($param["name"]) || !isset($param["questions"]) || !isset($param["video"]) || !isset($param["text"])) { $missing = array(); !isset($param["name"]) ? $missing[] = "name" : null; !isset($param["questions"]) ? $missing[] = "questions" : null; !isset($param["video"]) ? $missing[] = "video" : null; !isset($param["text"]) ? $missing[] = "text" : null; throw new InvalidRequestError("missing param: " . implode($missing, ", ")); } else { if (!is_array($param["questions"]) || count($param["questions"]) == 0) { throw new InvalidRequestError("wrong param questions"); } } foreach ($param["questions"] as $questions) { if (!isset($questions["content"]) || !isset($questions["readingTime"]) || !isset($questions["answerTime"]) || !isset($questions["number"])) { $missing = array(); !isset($param["content"]) ? $missing[] = "content" : null; !isset($param["readingTime"]) ? $missing[] = "readingTime" : null; !isset($param["answerTime"]) ? $missing[] = "answerTime" : null; !isset($param["number"]) ? $missing[] = "number" : null; throw new InvalidRequestError("missing param: " . implode($missing, ", ")); } else { if (!in_array($questions["readingTime"], Interview::$acceptedValue) || !in_array($questions["answerTime"], Interview::$acceptedValue)) { throw new InvalidRequestError("invalid duration of readingTime or answerTime"); } } } $itw = ApiRequest::post("/api/v1/interview/", $param); $questions = array(); foreach ($itw["questions"] as $q) { $questions[] = new Question($q["content"], $q["readingTime"], $q["answerTime"], $q["number"]); } return new Interview($itw["_id"], $itw["name"], $questions, $itw["video"], $itw["text"], $itw["callback"], $itw["sent"], $itw["answers"], $itw["new"]); }
public function testPostRequest() { $array = ["name" => "interview 1", "questions" => [["content" => "question 1", "readingTime" => 60, "answerTime" => 60, "number" => 1]], "video" => "", "text" => ""]; $res = ApiRequest::post("/api/v1/interview/", $array); $this->assertTrue(is_array($res)); $this->assertTrue(isset($res["_id"])); ApiRequestTest::$interviewId = $res["_id"]; }