123 lines
3.5 KiB
PHP
123 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use App\Models\BlockedUser;
|
|
use App\Models\HiddenPost;
|
|
use App\Models\ReportedPost;
|
|
use App\Models\ReportedUser;
|
|
use App\Models\User;
|
|
use App\Models\UserCircle;
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
|
|
trait UserHelper
|
|
{
|
|
|
|
public function checkUserInCircle($otherUser): bool
|
|
{
|
|
if (!Auth::check()) {
|
|
return 0;
|
|
}
|
|
$user = Auth::user();
|
|
$check = UserCircle::where(['user_id' => $user->id, 'added_user_id' => $otherUser->id, 'status' => 'Accepted'])
|
|
->orWhere(function ($query) use ($otherUser, $user) {
|
|
$query->where('user_id', $otherUser->id)
|
|
->where('added_user_id', $user->id)
|
|
->where('status', 'Accepted');
|
|
|
|
})
|
|
->first();
|
|
return isset($check) ? 1 : 0;
|
|
}
|
|
|
|
public function checkCircleStatus($otherUser): string
|
|
{
|
|
if (!Auth::check()) {
|
|
return '';
|
|
}
|
|
$user = Auth::user();
|
|
$check = UserCircle::where(['user_id' => $user->id, 'added_user_id' => $otherUser->id])
|
|
->orWhere(function ($query) use ($otherUser, $user) {
|
|
$query->where('user_id', $otherUser->id)
|
|
->where('added_user_id', $user->id);
|
|
})
|
|
->first();
|
|
return isset($check) ? $check->status : '';
|
|
}
|
|
|
|
|
|
public function checkUserInBlockList($otherUser): bool
|
|
{
|
|
if (!Auth::check()) {
|
|
return 0;
|
|
}
|
|
$user = Auth::user();
|
|
$check = BlockedUser::where(['user_id' => $user->id, 'blocked_user_id' => $otherUser->id])
|
|
->first();
|
|
return isset($check) ? 1 : 0;
|
|
}
|
|
|
|
|
|
public function checkUserReportRequest($otherUser): bool
|
|
{
|
|
if (!Auth::check()) {
|
|
return 0;
|
|
}
|
|
$user = Auth::user();
|
|
$check = ReportedUser::where(['user_id' => $user->id, 'reported_user_id' => $otherUser->id])
|
|
->where(function ($query) {
|
|
$query->where('action', 'Deleted')
|
|
->orWhere('action', 'Blocked');
|
|
})->first();
|
|
return isset($check) ? 1 : 0;
|
|
}
|
|
|
|
public function checkPostReportRequest($post): bool
|
|
{
|
|
if (!Auth::check()) {
|
|
return 0;
|
|
}
|
|
$user = Auth::user();
|
|
$check = ReportedPost::where(['reporting_user_id' => $user->id, 'post_id' => $post->id])
|
|
->where(function ($query) {
|
|
$query->where('action', 'Deleted')
|
|
->orWhere('action', 'Blocked');
|
|
})->first();
|
|
return isset($check) ? 1 : 0;
|
|
}
|
|
|
|
public function checkPostHideRequest($post): bool
|
|
{
|
|
if (!Auth::check()) {
|
|
return 0;
|
|
}
|
|
$user = Auth::user();
|
|
$check = HiddenPost::where(['hide_on' => $user->id, 'post_id' => $post->id])->first();
|
|
return isset($check) ? 1 : 0;
|
|
}
|
|
|
|
public function getCircleUsersCount($id)
|
|
{
|
|
$user = User::findOrFail($id);
|
|
$data = UserCircle::where('status', 'Accepted')
|
|
->where(function ($query) use ($user) {
|
|
$query->where('user_id', $user->id)
|
|
->orWhere('added_user_id', $user->id);
|
|
})
|
|
->count();
|
|
return $data;
|
|
}
|
|
|
|
function sendApiRequest($url)
|
|
{
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
$return = curl_exec($ch);
|
|
curl_close($ch);
|
|
return $return;
|
|
}
|
|
|
|
}
|