feat: APIRecoveryType을 포함한 리턴 방법

This commit is contained in:
2023-03-17 01:10:59 +09:00
parent 3513aae088
commit d673024a10
2 changed files with 21 additions and 2 deletions
+11 -1
View File
@@ -8,7 +8,17 @@ namespace sammo\Enums;
enum APIRecoveryType: string{
case Login = 'login';//로그인 재시도부터 시작한다
case TwoFactorAuth = '2fa';//로그인은 가능하지만 인증코드 입력이 필요하다
case Gateway = 'gateway';//로그인 완료. 게임 서버 리스트를 띄워야한다
case Gateway = 'gateway';//로그인은 되어있지만, 장수가 없어 게이트웨이로 이동해야 한다
case GameLogin = 'game_login';//서버 업데이트 등으로 다시 게임 정보 수신 필요
case GameQuota = 'game_quota';//접속 제한
public function info(): string{
return match($this){
APIRecoveryType::Login => '로그인을 해야합니다.',
APIRecoveryType::TwoFactorAuth => '인증코드를 입력해야합니다.',
APIRecoveryType::Gateway => '장수가 없습니다.',
APIRecoveryType::GameLogin => '게임 정보를 다시 받아야합니다.',
APIRecoveryType::GameQuota => '접속 제한이 걸렸습니다.',
};
}
}
+10 -1
View File
@@ -1,6 +1,8 @@
<?php
namespace sammo;
use sammo\Enums\APIRecoveryType;
class Json
{
const PRETTY = 1 << 0;
@@ -56,7 +58,14 @@ class Json
}
/** @return never */
public static function dieWithReason(string $reason){
public static function dieWithReason(string $reason, APIRecoveryType $recoveryType = null){
if($recoveryType){
static::die([
'result'=>false,
'reason'=>$reason,
'recoveryType'=>$recoveryType->value
]);
}
static::die([
'result'=>false,
'reason'=>$reason