invokeArgs('buildLocationByGET', [$location, $referer]); if(dao::isError()) return dao::getError(); return $result; } /** * Test buildLocationByPATHINFO method. * * @param string $location * @param string $referer * @access public * @return string */ public function buildLocationByPATHINFOTest(string $location, string $referer): string { $result = $this->invokeArgs('buildLocationByPATHINFO', [$location, $referer]); if(dao::isError()) return dao::getError(); return $result; } /** * Test buildSSOParams method. * * @param string $referer * @access public * @return string */ public function buildSSOParamsTest(string $referer): string { $result = $this->invokeArgs('buildSSOParams', [$referer]); if(dao::isError()) return dao::getError(); return $result; } /** * Test buildUserForCreate method. * * @access public * @return object */ public function buildUserForCreateTest(): object { $result = $this->invokeArgs('buildUserForCreate', []); if(dao::isError()) return dao::getError(); return $result; } /** * Test computeAuth method. * * @param string $token * @access public * @return string */ public function computeAuthTest(string $token): string { $result = $this->invokeArgs('computeAuth', [$token]); if(dao::isError()) return dao::getError(); return $result; } /** * Test getBindFeishuUser method. * * @param string $userToken * @param object $feishuConfig * @access public * @return array */ public function getBindFeishuUserTest(string $userToken, object $feishuConfig): array { $result = $this->invokeArgs('getBindFeishuUser', [$userToken, $feishuConfig]); if(dao::isError()) return dao::getError(); return $result; } /** * Test getFeishuAccessToken method. * * @param object $appConfig * @access public * @return array */ public function getFeishuAccessTokenTest(object $appConfig): array { $result = $this->invokeArgs('getFeishuAccessToken', [$appConfig]); if(dao::isError()) return dao::getError(); return $result; } /** * Test getFeishuUserToken method. * * @param string $code * @param string $accessToken * @access public * @return array */ public function getFeishuUserTokenTest(string $code, string $accessToken): array { $result = $this->invokeArgs('getFeishuUserToken', [$code, $accessToken]); if(dao::isError()) return dao::getError(); return $result; } /** * Test idenfyFromSSO method. * * @param string $locate * @access public * @return bool */ public function idenfyFromSSOTest(string $locate): bool { $result = $this->invokeArgs('idenfyFromSSO', [$locate]); if(dao::isError()) return dao::getError(); return $result; } /** * Test locateNotifyLink method. * * @param string $location * @param string $referer * @access public * @return string */ public function locateNotifyLinkTest(string $location, string $referer): string { /* Since locateNotifyLink calls locate() which redirects, we need to capture the built location before redirect. */ /* We'll call the buildLocationByGET or buildLocationByPATHINFO directly based on the logic. */ $isGet = strpos($location, '&') !== false; $requestType = $_GET['requestType'] ?? ''; if(!empty($requestType)) $isGet = $requestType == 'GET' ? true : false; if($isGet) { $result = $this->invokeArgs('buildLocationByGET', [$location, $referer]); } else { $result = $this->invokeArgs('buildLocationByPATHINFO', [$location, $referer]); } if(!empty($_GET['sessionid'])) { $sessionConfig = json_decode(base64_decode($_GET['sessionid']), false); $result .= '&' . $sessionConfig->session_name . '=' . $sessionConfig->session_id; } if(dao::isError()) return dao::getError(); return $result; } }