58 lines
1.7 KiB
PHP
58 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Legacy;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
class MyBuddiesController extends Controller
|
|
{
|
|
public function index(Request $request)
|
|
{
|
|
$user = $request->user();
|
|
if (! $user) {
|
|
return redirect()->route('login');
|
|
}
|
|
|
|
$perPage = 50;
|
|
|
|
try {
|
|
$query = DB::table('friends_list as t1')
|
|
->leftJoin('users as t2', 't1.friend_id', '=', 't2.id')
|
|
->leftJoin('user_profiles as p', 'p.user_id', '=', 't2.id')
|
|
->where('t1.user_id', $user->id)
|
|
->select('t1.id', 't1.friend_id', 't1.user_id', 't2.name as uname', 'p.avatar as icon', 't1.date_added')
|
|
->orderByDesc('t1.date_added');
|
|
|
|
$buddies = $query->paginate($perPage)->withQueryString();
|
|
} catch (\Throwable $e) {
|
|
$buddies = collect();
|
|
}
|
|
|
|
$page_title = ($user->name ?? $user->username ?? 'User') . ': Following List';
|
|
|
|
return view('legacy.mybuddies', compact('buddies', 'page_title'));
|
|
}
|
|
|
|
public function destroy(Request $request, $id)
|
|
{
|
|
$user = $request->user();
|
|
if (! $user) {
|
|
abort(403);
|
|
}
|
|
|
|
try {
|
|
$deleted = DB::table('friends_list')->where('id', $id)->where('user_id', $user->id)->delete();
|
|
if ($deleted) {
|
|
$request->session()->flash('status', 'Removed from following list.');
|
|
}
|
|
} catch (\Throwable $e) {
|
|
$request->session()->flash('error', 'Could not remove buddy.');
|
|
}
|
|
|
|
return redirect()->route('legacy.mybuddies');
|
|
}
|
|
}
|