1
0
Fork 1
mirror of https://github.com/pixelfed/pixelfed.git synced 2024-12-25 01:05:36 +00:00

Update PublicApiController, add state endpoint

This commit is contained in:
Daniel Supernault 2020-12-13 22:51:44 -07:00
parent cc515c1771
commit 9fc5a80cd3
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -92,32 +92,47 @@ class PublicApiController extends Controller
$item = new Fractal\Resource\Item($status, new StatusStatelessTransformer()); $item = new Fractal\Resource\Item($status, new StatusStatelessTransformer());
$res = [ $res = [
'status' => $this->fractal->createData($item)->toArray(), 'status' => $this->fractal->createData($item)->toArray(),
'user' => [],
'likes' => [],
'shares' => [],
'reactions' => [
'liked' => false,
'shared' => false,
'bookmarked' => false,
],
]; ];
return response()->json($res, 200, [], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); return $res;
}); });
return $res; return response()->json($res);
} }
$item = new Fractal\Resource\Item($status, new StatusTransformer()); $item = new Fractal\Resource\Item($status, new StatusStatelessTransformer());
$res = [ $res = [
'status' => $this->fractal->createData($item)->toArray(), 'status' => $this->fractal->createData($item)->toArray(),
'user' => $this->getUserData($request->user()), ];
'likes' => $this->getLikes($status), return response()->json($res);
'shares' => $this->getShares($status), }
public function statusState(Request $request, $username, int $postid)
{
$profile = Profile::whereUsername($username)->whereNull('status')->firstOrFail();
$status = Status::whereProfileId($profile->id)->findOrFail($postid);
$this->scopeCheck($profile, $status);
if(!Auth::check()) {
$res = [
'user' => [],
'likes' => [],
'shares' => [],
'reactions' => [
'liked' => false,
'shared' => false,
'bookmarked' => false,
],
];
return response()->json($res);
}
$res = [
'user' => $this->getUserData($request->user()),
'likes' => [],
'shares' => [],
'reactions' => [ 'reactions' => [
'liked' => $status->liked(), 'liked' => (bool) $status->liked(),
'shared' => $status->shared(), 'shared' => (bool) $status->shared(),
'bookmarked' => $status->bookmarked(), 'bookmarked' => (bool) $status->bookmarked(),
], ],
]; ];
return response()->json($res, 200, [], JSON_PRETTY_PRINT); return response()->json($res);
} }
public function statusComments(Request $request, $username, int $postId) public function statusComments(Request $request, $username, int $postId)