Explorar o código

feat: remove legacy json response

Cat %!s(int64=2) %!d(string=hai) anos
pai
achega
0777438a0d

+ 6 - 13
src/Controllers/LinkController.php

@@ -8,6 +8,7 @@ use App\Models\Link;
 use App\Models\Node;
 use App\Models\Setting;
 use App\Models\UserSubscribeLog;
+use App\Utils\ResponseHelper;
 use Slim\Http\Response;
 use Slim\Http\ServerRequest;
 use function array_key_exists;
@@ -22,16 +23,10 @@ final class LinkController extends BaseController
 {
     public static function getContent(ServerRequest $request, Response $response, array $args)
     {
-        if (! $_ENV['Subscribe']) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
-        }
-        //判断是否开启传统订阅
-        if (! Setting::obtain('enable_traditional_sub')) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
+        $err_msg = '订阅链接无效';
+
+        if (! $_ENV['Subscribe'] || ! Setting::obtain('enable_traditional_sub')) {
+            return ResponseHelper::error($response, $err_msg);
         }
 
         $token = $args['token'];
@@ -40,9 +35,7 @@ final class LinkController extends BaseController
         $link = Link::where('token', $token)->first();
 
         if (! $link->isValid()) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
+            return ResponseHelper::error($response, $err_msg);
         }
 
         $user = $link->user();

+ 5 - 13
src/Controllers/SubController.php

@@ -8,6 +8,7 @@ use App\Models\Link;
 use App\Models\Node;
 use App\Models\Setting;
 use App\Models\UserSubscribeLog;
+use App\Utils\ResponseHelper;
 use App\Utils\Tools;
 use Psr\Http\Message\ResponseInterface;
 use Symfony\Component\Yaml\Yaml;
@@ -23,29 +24,20 @@ final class SubController extends BaseController
 {
     public static function getContent($request, $response, $args): ResponseInterface
     {
-        if (! $_ENV['Subscribe']) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
-        }
+        $err_msg = '订阅链接无效';
 
         $token = $args['token'];
         $subtype = $args['subtype'];
-
         $subtype_list = ['json', 'clash', 'sip008'];
 
-        if (! in_array($subtype, $subtype_list)) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
+        if (! $_ENV['Subscribe'] || ! in_array($subtype, $subtype_list)) {
+            return ResponseHelper::error($response, $err_msg);
         }
 
         $link = Link::where('token', $token)->first();
 
         if (! $link->isValid()) {
-            return $response->withJson([
-                'ret' => 0,
-            ]);
+            return ResponseHelper::error($response, $err_msg);
         }
 
         $user = $link->user();

+ 8 - 18
src/Controllers/UserController.php

@@ -93,18 +93,11 @@ final class UserController extends BaseController
      */
     public function announcement(ServerRequest $request, Response $response, array $args): Response|ResponseInterface
     {
-        $Anns = Ann::orderBy('date', 'desc')->get();
-
-        if ($request->getParam('json') === 1) {
-            return $response->withJson([
-                'Anns' => $Anns,
-                'ret' => 1,
-            ]);
-        }
+        $anns = Ann::orderBy('date', 'desc')->get();
 
         return $response->write(
             $this->view()
-                ->assign('anns', $Anns)
+                ->assign('anns', $anns)
                 ->fetch('user/announcement.tpl')
         );
     }
@@ -116,13 +109,6 @@ final class UserController extends BaseController
     {
         $docs = Docs::orderBy('id', 'desc')->get();
 
-        if ($request->getParam('json') === 1) {
-            return $response->withJson([
-                'docs' => $docs,
-                'ret' => 1,
-            ]);
-        }
-
         return $response->write(
             $this->view()
                 ->assign('docs', $docs)
@@ -258,9 +244,11 @@ final class UserController extends BaseController
         $pwd = $request->getParam('pwd');
         $repwd = $request->getParam('repwd');
         $user = $this->user;
+
         if (! Hash::checkPassword($user->pass, $oldpwd)) {
             return ResponseHelper::error($response, '旧密码错误');
         }
+
         if ($pwd !== $repwd) {
             return ResponseHelper::error($response, '两次输入不符合');
         }
@@ -268,6 +256,7 @@ final class UserController extends BaseController
         if (strlen($pwd) < 8) {
             return ResponseHelper::error($response, '密码太短啦');
         }
+
         $hashPwd = Hash::passwordHash($pwd);
         $user->pass = $hashPwd;
         $user->save();
@@ -294,7 +283,8 @@ final class UserController extends BaseController
 
         if (Setting::obtain('reg_email_verify')) {
             $emailcode = $request->getParam('emailcode');
-            $mailcount = EmailVerify::where('email', '=', $newemail)->where('code', '=', $emailcode)->where('expire_in', '>', time())->first();
+            $mailcount = EmailVerify::where('email', '=', $newemail)
+                ->where('code', '=', $emailcode)->where('expire_in', '>', time())->first();
             if ($mailcount === null) {
                 return ResponseHelper::error($response, '您的邮箱验证码不正确');
             }
@@ -484,7 +474,7 @@ final class UserController extends BaseController
         $checkin = $this->user->checkin();
 
         if (! $checkin['ok']) {
-            return ResponseHelper::error($response, $checkin['msg']);
+            return ResponseHelper::error($response, (string) $checkin['msg']);
         }
 
         return $response->withJson([

+ 9 - 6
src/Utils/ResponseHelper.php

@@ -12,17 +12,15 @@ use function json_encode;
 
 final class ResponseHelper
 {
-    public static function successfully(
-        Response $response,
-        string $msg
-    ): ResponseInterface {
+    public static function successfully(Response $response, string $msg): ResponseInterface
+    {
         return $response->withJson([
             'ret' => 1,
             'msg' => $msg,
         ]);
     }
 
-    public static function error(Response $response, mixed $msg): ResponseInterface
+    public static function error(Response $response, string $msg): ResponseInterface
     {
         return $response->withJson([
             'ret' => 0,
@@ -42,7 +40,12 @@ final class ResponseHelper
      *
      * @return ResponseInterface
      */
-    public static function etagJson(RequestInterface $request, ResponseInterface $response, mixed $data, int $flags = 0): ResponseInterface
+    public static function etagJson(
+        RequestInterface $request,
+        ResponseInterface $response,
+        mixed $data,
+        int $flags = 0
+    ): ResponseInterface
     {
         $str = (string) json_encode($data, $flags);
         $etag = hash('crc32c', $str);