feat: BaseAPI의 launch()에 타입 지정

- APIRecoveryType이 명시
This commit is contained in:
2023-03-17 01:39:10 +09:00
parent 6b9cfe46a0
commit 4d340abdcf
77 changed files with 171 additions and 89 deletions
+4 -2
View File
@@ -5,7 +5,9 @@ namespace sammo\API\Login;
use DateTime;
use sammo\Session;
use DateTimeInterface;
use sammo\APIHelper;
use sammo\BaseAPI;
use sammo\Enums\APIRecoveryType;
use sammo\Json;
use sammo\KakaoUtil;
use sammo\RootDB;
@@ -78,7 +80,7 @@ class LoginByID extends \sammo\BaseAPI
return [$tokenID, $token];
}
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
{
$RootDB = RootDB::db();
if ($session->isLoggedIn()) {
@@ -143,7 +145,7 @@ class LoginByID extends \sammo\BaseAPI
return [
'result' => false,
'reqOTP' => $oauthReqOTP,
'reason' => $oauthFailReason
'reason' => $oauthFailReason,
];
}
}
+2 -1
View File
@@ -5,6 +5,7 @@ namespace sammo\API\Login;
use sammo\Session;
use DateTimeInterface;
use sammo\BaseAPI;
use sammo\Enums\APIRecoveryType;
use sammo\Json;
use sammo\KakaoUtil;
use sammo\RootDB;
@@ -36,7 +37,7 @@ class LoginByToken extends LoginByID
return null;
}
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
{
$loginNonce = $session->loginNonce ?? null;
$loginNonceExpired = $session->loginNonceExpired ?? null;
+10 -7
View File
@@ -5,6 +5,7 @@ namespace sammo\API\Login;
use sammo\Session;
use DateTimeInterface;
use sammo\BaseAPI;
use sammo\Enums\APIRecoveryType;
use sammo\Json;
use sammo\KakaoUtil;
use sammo\RootDB;
@@ -12,9 +13,11 @@ use sammo\TimeUtil;
use sammo\Util;
use sammo\Validator;
class ReqNonce extends BaseAPI{
class ReqNonce extends BaseAPI
{
public function getRequiredSessionMode(): int {
public function getRequiredSessionMode(): int
{
return \sammo\BaseAPI::NO_LOGIN;
}
@@ -23,15 +26,15 @@ class ReqNonce extends BaseAPI{
return null;
}
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag) {
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType
{
$loginNonce = Util::randomStr(16);
$loginNonceExpired = TimeUtil::nowAddSeconds(2);
$session->loginNonce = $loginNonce;
$session->loginNonceExpired = $loginNonceExpired;
return [
'result'=>true,
'loginNonce'=>$loginNonce,
'result' => true,
'loginNonce' => $loginNonce,
];
}
}
}
+7 -4
View File
@@ -2,6 +2,8 @@
namespace sammo;
use sammo\Enums\APIRecoveryType;
abstract class BaseAPI
{
const NO_SESSION = -1;
@@ -13,7 +15,8 @@ abstract class BaseAPI
static array $sensitiveArgs = [];
static bool $allowExternalAPI = true;
public function getFilteredArgs(): array {
public function getFilteredArgs(): array
{
$filteredArgs = $this->args;
foreach (static::$sensitiveArgs as $argName) {
if (isset($filteredArgs[$argName])) {
@@ -33,10 +36,10 @@ abstract class BaseAPI
abstract public function getRequiredSessionMode(): int;
abstract function validateArgs(): ?string;
/** @return null|string|array */
abstract function launch(Session $session, ?\DateTimeInterface $modifiedSince, ?string $reqEtag);
abstract function launch(Session $session, ?\DateTimeInterface $modifiedSince, ?string $reqEtag): null | string | array | APIRecoveryType;
public function tryCache():?APICacheResult{
public function tryCache(): ?APICacheResult
{
return null;
}
}