浏览代码

Update api controllers

Daniel Supernault 4 年之前
父节点
当前提交
cc3053ed5d
共有 2 个文件被更改,包括 26 次插入14 次删除
  1. 19 14
      app/Http/Controllers/Api/ApiV1Controller.php
  2. 7 0
      app/Http/Controllers/Api/BaseApiController.php

+ 19 - 14
app/Http/Controllers/Api/ApiV1Controller.php

@@ -18,6 +18,7 @@ use App\{
     Notification,
     Profile,
     Status,
+    User,
     UserFilter,
 };
 use League\Fractal;
@@ -112,20 +113,24 @@ class ApiV1Controller extends Controller
     {
         abort_if(!$request->user(), 403);
         $id = $request->user()->id;
-
-        //$res = Cache::remember('mastoapi:user:account:id:'.$id, now()->addHours(6), function() use($id) {
-            $profile = Profile::whereNull('status')->whereUserId($id)->firstOrFail();
-            $resource = new Fractal\Resource\Item($profile, new AccountTransformer());
-            $res = $this->fractal->createData($resource)->toArray();
-            $res['source'] = [
-                'privacy' => $profile->is_private ? 'private' : 'public',
-                'sensitive' => $profile->cw ? true : false,
-                'language' => null,
-                'note' => '',
-                'fields' => []
-            ];
-        //     return $res;
-        // });
+        $key = 'user:last_active_at:id:'.$id;
+        $ttl = now()->addMinutes(5);
+        Cache::remember($key, $ttl, function() use($id) {
+            $user = User::findOrFail($id);
+            $user->last_active_at = now();
+            $user->save();
+            return;
+        });
+        $profile = Profile::whereNull('status')->whereUserId($id)->firstOrFail();
+        $resource = new Fractal\Resource\Item($profile, new AccountTransformer());
+        $res = $this->fractal->createData($resource)->toArray();
+        $res['source'] = [
+            'privacy' => $profile->is_private ? 'private' : 'public',
+            'sensitive' => $profile->cw ? true : false,
+            'language' => null,
+            'note' => '',
+            'fields' => []
+        ];
 
         return response()->json($res);
     }

+ 7 - 0
app/Http/Controllers/Api/BaseApiController.php

@@ -322,6 +322,13 @@ class BaseApiController extends Controller
             Auth::logout();
             return redirect('/login');
         }
+        $key = 'user:last_active_at:id:'.$user->id;
+        $ttl = now()->addMinutes(5);
+        Cache::remember($key, $ttl, function() use($user) {
+            $user->last_active_at = now();
+            $user->save();
+            return;
+        });
         $resource = new Fractal\Resource\Item($user->profile, new AccountTransformer());
         $res = $this->fractal->createData($resource)->toArray();
         return response()->json($res);