public function testAPIResult() { $result = APIResult::success("content"); $this->assertEquals(APIResult::STATUS_CALL_OK, $result->status, "Success result status failed"); $this->assertEquals("content", $result->content, "Success result content failed"); $result = APIResult::reject("content"); $this->assertEquals(APIResult::STATUS_CALL_REJECTED, $result->status, "Rejected result status failed"); $this->assertEquals("content", $result->content, "Rejected result content failed"); $result = APIResult::fail("content"); $this->assertEquals(APIResult::STATUS_CALL_ERROR, $result->status, "Fail result status failed"); $this->assertEquals("content", $result->content, "Fail result content failed"); }
/** Run everything an return the result as APIResult. */ public function run($action, $input) { // Check user login if (!api_user_login() && !is_user_logged_in()) { return APIResult::reject(APIError::$REJ_NOT_LOGGED); } // Check requested api, existing without illegal characters if ($this->api === null || $this->api == "" || strpos("..", $this->api) !== false || strpos("/", $this->api) !== false || !file_exists(PT::$ABSPATH . "/inc/data/api/" . $this->api . ".php")) { return APIResult::reject(APIError::$REJ_WRONG_API); } // Run the api require_once PT::$ABSPATH . "/inc/data/api/" . $this->api . ".php"; $apiClass = new \ReflectionClass("\\Pasteque\\" . $this->api); $api = $apiClass->newInstance($action, $input); $api->run(); return $api->getResult(); }
/** Set the result to a reject (should be called in check()). */ protected function reject($reason) { $this->result = APIResult::reject($reason); }