Skip to content

Instantly share code, notes, and snippets.

View erdum's full-sized avatar

Erdum erdum

View GitHub Profile
@erdum
erdum / CheckUserPermissions.php
Created March 19, 2024 04:47
Restrict users from accessing routes based on their permissions (Middleware)
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
class CheckUserPermissions
@erdum
erdum / FirestoreNotificationService.php
Created March 18, 2024 04:45
Realtime Notification Mechanism Using Firestore
<?php
namespace App\Services;
use Kreait\Firebase\Factory;
use Google\Cloud\Firestore\FieldValue;
use Throwable;
class FirestoreNotificationService
{
@erdum
erdum / StripeService.php
Last active March 20, 2024 06:41
Stripe API Service
<?php
namespace App\Services;
use Stripe\StripeClient;
use App\Exceptions\StripeApiException;
use App\Models\User;
use App\Models\UserCard;
use Throwable;
@erdum
erdum / FirebaseAuthService.php
Created March 12, 2024 04:45
Authentication Service Class for Laravel REST API
<?php
namespace App\Services;
use Kreait\Firebase\Factory;
use App\Jobs\ProcessEmail;
use App\Exceptions\InvalidIdTokenException;
use App\Exceptions\UserAlreadyRegisteredException;
use App\Exceptions\UserBlockedException;
use App\Exceptions\AccessForbiddenException;
@erdum
erdum / stripe_add_card.html
Created March 8, 2024 07:30
Stripe Add Card Form (for testing)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Payment Form</title>
<!-- Include Stripe.js -->
<script src="https://js.stripe.com/v3/"></script>
</head>
@erdum
erdum / check-focus.js
Created February 5, 2024 20:12
Check if a element or its child has current focus
function hasFocus(element) {
return element.contains(document.activeElement);
}
@erdum
erdum / base64-to-webp.php
Created January 31, 2024 18:46
Convert and save image in webp from raw base64 string in Laravel
<?php
use Illuminate\Support\Str;
function save_base64_to_webp(
$string,
$file_directory,
$file_name = null,
$disk_driver = 'local'
)
@erdum
erdum / ip-scanner.py
Created January 29, 2024 07:41
Python IP scanner
import socket
def check_port(ip, port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((ip, port))
sock.close()
return result == 0
def scan_ports(start_ip, end_ip, port):
@erdum
erdum / check-in-range.php
Created January 23, 2024 14:00
Check two geo-coordinate points are within a specified range
<?php
check_in_distance($lat_a, $long_a, $lat_b, $long_b, $range)
{
$dlat = ($lat_a / (180 / pi())) - ($lat_b / (180 / pi()));
$dlong = ($long_a / (180 / pi())) - ($long_b / (180 / pi()));
$c = pow(sin($dlat / 2), 2) + cos($lat_a);
$c = $c * cos($lat_b) * pow(sin($dlong / 2), 2);
$c = 2 * asin(sqrt($c));
$c = 6371 * $c;
@erdum
erdum / extract-tar.php
Created January 13, 2024 09:27
Extract tar file with PHP
<?php
$tarFile = __DIR__ . '/file.tar';
$extractTo = __DIR__ . '/';
exec("tar -xf $tarFile -C $extractTo", $output, $returnCode);
if ($returnCode === 0) {
echo 'Extraction successful!';
} else {