Răsfoiți Sursa

Update ApiV1Controller, map AccountService

Daniel Supernault 2 ani în urmă
părinte
comite
e71972d8f1

+ 9 - 2
app/Http/Controllers/Api/ApiV1Controller.php

@@ -3023,7 +3023,7 @@ class ApiV1Controller extends Controller
 		}
 		}
 
 
 		if($sortBy == 'all' && !$request->has('cursor')) {
 		if($sortBy == 'all' && !$request->has('cursor')) {
-			$ids = Cache::remember('status:replies:all:' . $id, 86400, function() use($id) {
+			$ids = Cache::remember('status:replies:all:' . $id, 3600, function() use($id) {
 				return DB::table('statuses')
 				return DB::table('statuses')
 					->where('in_reply_to_id', $id)
 					->where('in_reply_to_id', $id)
 					->orderBy('id')
 					->orderBy('id')
@@ -3058,8 +3058,15 @@ class ApiV1Controller extends Controller
 			$status['favourited'] = LikeService::liked($pid, $post->id);
 			$status['favourited'] = LikeService::liked($pid, $post->id);
 			return $status;
 			return $status;
 		})
 		})
+		->map(function($post) {
+			if(isset($post['account']) && isset($post['account']['id'])) {
+				$account = AccountService::get($post['account']['id'], true);
+				$post['account'] = $account;
+			}
+			return $post;
+		})
 		->filter(function($post) {
 		->filter(function($post) {
-			return $post && isset($post['id']) && isset($post['account']);
+			return $post && isset($post['id']) && isset($post['account']) && isset($post['account']['id']);
 		})
 		})
 		->values();
 		->values();
 
 

+ 8 - 6
app/Services/AccountService.php

@@ -19,19 +19,21 @@ class AccountService
 
 
 	public static function get($id, $softFail = false)
 	public static function get($id, $softFail = false)
 	{
 	{
-		return Cache::remember(self::CACHE_KEY . $id, 43200, function() use($id, $softFail) {
+		$res = Cache::remember(self::CACHE_KEY . $id, 43200, function() use($id) {
 			$fractal = new Fractal\Manager();
 			$fractal = new Fractal\Manager();
 			$fractal->setSerializer(new ArraySerializer());
 			$fractal->setSerializer(new ArraySerializer());
 			$profile = Profile::find($id);
 			$profile = Profile::find($id);
 			if(!$profile || $profile->status === 'delete') {
 			if(!$profile || $profile->status === 'delete') {
-				if($softFail) {
-					return null;
-				}
-				abort(404);
+				return null;
 			}
 			}
 			$resource = new Fractal\Resource\Item($profile, new AccountTransformer());
 			$resource = new Fractal\Resource\Item($profile, new AccountTransformer());
 			return $fractal->createData($resource)->toArray();
 			return $fractal->createData($resource)->toArray();
-		});	
+		});
+
+		if(!$res) {
+			return $softFail ? null : abort(404);
+		}
+		return $res;
 	}
 	}
 
 
 	public static function getMastodon($id, $softFail = false)
 	public static function getMastodon($id, $softFail = false)