refac: APIHelper에 DummySession 적용, NO_LOGIN 구분
This commit is contained in:
@@ -41,7 +41,7 @@ class GetCachedMap extends \sammo\BaseAPI
|
||||
|
||||
public function getRequiredSessionMode(): int
|
||||
{
|
||||
return static::NO_SESSION;
|
||||
return static::DUMMY_SESSION;
|
||||
}
|
||||
|
||||
public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag)
|
||||
|
||||
@@ -32,7 +32,7 @@ class GetConst extends \sammo\BaseAPI
|
||||
|
||||
public function getRequiredSessionMode(): int
|
||||
{
|
||||
return static::REQ_LOGIN | static::REQ_READ_ONLY;
|
||||
return static::DUMMY_SESSION;
|
||||
}
|
||||
|
||||
public function findLastModified(): ?int
|
||||
|
||||
@@ -32,7 +32,7 @@ class LoginByID extends \sammo\BaseAPI
|
||||
|
||||
public function getRequiredSessionMode(): int
|
||||
{
|
||||
return BaseAPI::NO_SESSION;
|
||||
return BaseAPI::NO_LOGIN;
|
||||
}
|
||||
|
||||
public function scrubToken(int $userID)
|
||||
|
||||
@@ -17,7 +17,7 @@ class LoginByToken extends LoginByID
|
||||
|
||||
public function getRequiredSessionMode(): int
|
||||
{
|
||||
return \sammo\BaseAPI::NO_SESSION; //XXX: Token 때문에 엄밀히는 NO_SESSION이 아님
|
||||
return \sammo\BaseAPI::NO_LOGIN;
|
||||
}
|
||||
|
||||
public function validateArgs(): ?string
|
||||
|
||||
@@ -15,7 +15,7 @@ use sammo\Validator;
|
||||
class ReqNonce extends BaseAPI{
|
||||
|
||||
public function getRequiredSessionMode(): int {
|
||||
return \sammo\BaseAPI::NO_SESSION;
|
||||
return \sammo\BaseAPI::NO_LOGIN;
|
||||
}
|
||||
|
||||
public function validateArgs(): ?string
|
||||
|
||||
@@ -45,15 +45,15 @@ class APIHelper
|
||||
}
|
||||
|
||||
$sessionMode = $obj->getRequiredSessionMode();
|
||||
if ($sessionMode === BaseAPI::NO_SESSION) {
|
||||
$session = Session::getInstance(); //XXX: NoSession이면 진짜 NoSession이어야..?
|
||||
if ($sessionMode === BaseAPI::DUMMY_SESSION) {
|
||||
$session = new DummySession();
|
||||
} else {
|
||||
if ($sessionMode & BaseAPI::REQ_GAME_LOGIN) {
|
||||
$session = Session::requireGameLogin();
|
||||
} else if ($sessionMode & BaseAPI::REQ_LOGIN) {
|
||||
$session = Session::requireLogin();
|
||||
} else {
|
||||
Json::dieWithReason("올바르지 않은 SessionMode: {$sessionMode}");
|
||||
$session = Session::getInstance();
|
||||
}
|
||||
|
||||
if ($sessionMode & BaseAPI::REQ_READ_ONLY) {
|
||||
|
||||
@@ -4,7 +4,8 @@ namespace sammo;
|
||||
|
||||
abstract class BaseAPI
|
||||
{
|
||||
const NO_SESSION = 0;
|
||||
const DUMMY_SESSION = -1;
|
||||
const NO_LOGIN = 0;
|
||||
const REQ_LOGIN = 1;
|
||||
const REQ_GAME_LOGIN = 2;
|
||||
const REQ_READ_ONLY = 4;
|
||||
|
||||
Reference in New Issue
Block a user