Files
sccs_laravel/app/Traits/UserHelper.php
2025-11-04 16:23:40 +05:00

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;
}
}