From 9726913622598ce43299c7fc51e7ef5ba02fd0fb Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Wed, 25 Sep 2019 21:51:51 -0600 Subject: [PATCH] Add /api/v1/follow_requests endpoint --- app/Http/Controllers/Api/ApiV1Controller.php | 22 ++++++++++++++++++++ routes/web.php | 1 + 2 files changed, 23 insertions(+) diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php index b0b6fb3d9..62f6793a3 100644 --- a/app/Http/Controllers/Api/ApiV1Controller.php +++ b/app/Http/Controllers/Api/ApiV1Controller.php @@ -746,6 +746,28 @@ class ApiV1Controller extends Controller return response()->json([]); } + /** + * GET /api/v1/follow_requests + * + * Return array of Accounts that have sent follow requests + * + * @return \App\Transformer\Api\AccountTransformer + */ + public function accountFollowRequests(Request $request) + { + abort_if(!$request->user(), 403); + + $user = $request->user(); + + $followRequests = FollowRequest::whereFollowingId($user->profile->id)->pluck('follower_id'); + + $profiles = Profile::find($followRequests); + + $resource = new Fractal\Resource\Collection($profiles, new AccountTransformer()); + $res = $this->fractal->createData($resource)->toArray(); + return response()->json($res); + } + public function statusById(Request $request, $id) { $status = Status::whereVisibility('public')->findOrFail($id); diff --git a/routes/web.php b/routes/web.php index bc1bfdaa8..0b020f6ee 100644 --- a/routes/web.php +++ b/routes/web.php @@ -103,6 +103,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact Route::post('statuses/{id}/favourite', 'Api\ApiV1Controller@statusFavouriteById')->middleware('auth:api'); Route::post('statuses/{id}/unfavourite', 'Api\ApiV1Controller@statusUnfavouriteById')->middleware('auth:api'); Route::get('filters', 'Api\ApiV1Controller@accountFilters')->middleware('auth:api'); + Route::get('follow_requests', 'Api\ApiV1Controller@accountFollowRequests')->middleware('auth:api'); Route::get('likes', 'ApiController@hydrateLikes'); Route::post('media', 'ApiController@uploadMedia')->middleware('auth:api');