feat: BaseAPI의 launch()에 타입 지정
- APIRecoveryType이 명시
This commit is contained in:
@@ -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,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user