diff --git a/CHANGELOG.md b/CHANGELOG.md index 5808e6a9a..cd6f88457 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -93,6 +93,8 @@ - Updated ApiV1Controller, fix public timeline endpoint. ([80c7def3](https://github.com/pixelfed/pixelfed/commit/80c7def3)) - Updated PublicApiController, fix public timeline endpoint. ([dcb7ba9c](https://github.com/pixelfed/pixelfed/commit/dcb7ba9c)) - Updated ApiV1Controller, fix home timeline entities. ([6fc0dcb3](https://github.com/pixelfed/pixelfed/commit/6fc0dcb3)) +- Updated ApiV1Controller, fix favourites endpoints ([d6d99385](https://github.com/pixelfed/pixelfed/commit/d6d99385)) +- Updated ApiV1Controller, fix reblogs endpoints ([de42d84c](https://github.com/pixelfed/pixelfed/commit/de42d84c)) - ([](https://github.com/pixelfed/pixelfed/commit/)) ## [v0.11.1 (2021-09-07)](https://github.com/pixelfed/pixelfed/compare/v0.11.0...v0.11.1) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index c8cdc7dfd..f62bcfe03 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -136,21 +136,20 @@ class ApiV1Controller extends Controller */ public function verifyCredentials(Request $request) { - abort_if(!$request->user(), 403); + $user = $request->user(); - abort_if($request->user()->status != null, 403); - - $id = $request->user()->profile_id; + abort_if(!$user, 403); + abort_if($user->status != null, 403); $res = AccountService::getMastodon($id); - // $res['source'] = [ - // 'privacy' => $res['locked'] ? 'private' : 'public', - // 'sensitive' => false, - // 'language' => null, - // 'note' => '', - // 'fields' => [] - // ]; + $res['source'] = [ + 'privacy' => $res['locked'] ? 'private' : 'public', + 'sensitive' => false, + 'language' => $user->language ?? 'en', + 'note' => '', + 'fields' => [] + ]; return response()->json($res); } @@ -457,7 +456,7 @@ class ApiV1Controller extends Controller */ public function accountFollowingById(Request $request, $id) { - abort_if(!$request->user(), 403); + abort_if(!$request->user(), 403); $account = AccountService::get($id); abort_if(!$account, 404); $pid = $request->user()->profile_id; @@ -504,7 +503,6 @@ class ApiV1Controller extends Controller */ public function accountStatusesById(Request $request, $id) { - abort_if(!$request->user(), 403); $user = $request->user(); $this->validate($request, [ @@ -1039,8 +1037,8 @@ class ApiV1Controller extends Controller LikePipeline::dispatch($like); } - $resource = new Fractal\Resource\Item($status, new StatusTransformer()); - $res = $this->fractal->createData($resource)->toArray(); + $res = StatusService::getMastodon($status->id, false); + $res['favourited'] = true; return response()->json($res); } @@ -1079,8 +1077,8 @@ class ApiV1Controller extends Controller StatusService::del($status->id); - $resource = new Fractal\Resource\Item($status, new StatusTransformer()); - $res = $this->fractal->createData($resource)->toArray(); + $res = StatusService::getMastodon($status->id, false); + $res['favourited'] = false; return response()->json($res); } @@ -2207,7 +2205,7 @@ class ApiV1Controller extends Controller abort_if(!$request->user(), 403); $user = $request->user(); - $status = Status::findOrFail($id); + $status = Status::whereScope('public')->findOrFail($id); if($status->profile_id !== $user->profile_id) { if($status->scope == 'private') { @@ -2230,8 +2228,10 @@ class ApiV1Controller extends Controller } StatusService::del($status->id); - $resource = new Fractal\Resource\Item($status, new StatusTransformer()); - $res = $this->fractal->createData($resource)->toArray(); + + $res = StatusService::getMastodon($status->id); + $res['reblogged'] = true; + return response()->json($res); } @@ -2247,7 +2247,7 @@ class ApiV1Controller extends Controller abort_if(!$request->user(), 403); $user = $request->user(); - $status = Status::findOrFail($id); + $status = Status::whereScope('public')->findOrFail($id); if($status->profile_id !== $user->profile_id) { if($status->scope == 'private') { @@ -2268,9 +2268,9 @@ class ApiV1Controller extends Controller } UndoSharePipeline::dispatch($reblog); - $resource = new Fractal\Resource\Item($status, new StatusTransformer()); - $res = $this->fractal->createData($resource)->toArray(); - $res['reblogged'] = false; + + $res = StatusService::getMastodon($status->id); + $res['reblogged'] = true; return response()->json($res); } diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index ea4b2fae3..71cd5b7d6 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -231,7 +231,7 @@ class StatusController extends Controller $user = Auth::user(); $profile = $user->profile; - $status = Status::whereIn('scope', ['public', 'unlisted']) + $status = Status::whereScope('public') ->findOrFail($request->input('item')); $count = $status->reblogs_count;