<?php
use Carbon\Carbon;
use App\Models\Country;
use App\Models\EmailTemplate;
use App\Utility\AppSettingUtility;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Http;
use GeoSot\EnvEditor\Facades\EnvEditor;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\Facades\Storage;
use PHPOpenSourceSaver\JWTAuth\Facades\JWTAuth;
if (!function_exists('curlRequest')) {
function curlRequest($url, $fields, $method = 'POST', $headers = [], $is_array = false)
{
$client = new \GuzzleHttp\Client(['verify' => false]);
if (is_string($fields)) {
$data = [
'body' => $fields,
'headers' => $headers,
];
} else {
$data = [
'form_params' => $fields,
'headers' => $headers,
];
}
$response = $client->request($method, $url, $data);
$result = $response->getBody()->getContents();
return json_decode($result, $is_array);
}
}
if (!function_exists('httpRequest')) {
function httpRequest($url, $fields, $headers = [], $is_form = false, $method = 'POST')
{
if ($is_form) {
$response = Http::withHeaders($headers)->asForm()->$method($url, $fields);
} else {
$response = Http::withHeaders($headers)->$method($url, $fields);
}
return $response->json();
}
}
if (!function_exists('validate_purchase')) {
function validate_purchase($code, $data)
{
$script_url = str_replace('install/process', '', (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 'https' : 'http') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
$fields = [
'item_id' => '51330626',
'activation_code' => urlencode($code),
'current_version' => setting('current_version'),
];
$response = false;
if (config('app.dev_mode')) {
$url = 'https://license.spagreen.net/version-check-including-beta';
} else {
$url = 'https://license.spagreen.net/version-check';
}
$request = curlRequest($url, $fields);
if (property_exists($request, 'status') && $request->status) {
$response = $request->release_info;
}
if (is_bool($response)) {
$latest_version = isAppMode() ? '116' : '167';
} else {
$latest_version = $response->version;
}
$fields = [
'domain' => urlencode($_SERVER['SERVER_NAME']),
'version' => $latest_version,
'item_id' => '51330626',
'url' => urlencode($script_url),
'activation_code' => urlencode($code),
'is_beta' => 1,
];
$curl_response = curlRequest('https://license.spagreen.net/verify-installation-v3', $fields);
if (property_exists($curl_response, 'status') && $curl_response->status) {
envWrite('DB_HOST', $data['DB_HOST']);
envWrite('DB_DATABASE', $data['DB_DATABASE']);
envWrite('DB_USERNAME', $data['DB_USERNAME']);
envWrite('DB_PASSWORD', $data['DB_PASSWORD']);
sleep(3);
$zip_file = $curl_response->release_zip_link;
if ($zip_file) {
try {
$file_path = base_path('public/install/installer.zip');
file_put_contents($file_path, file_get_contents($zip_file));
} catch (Exception $e) {
return 'Zip file cannot be Imported. Please check your server permission or Contact with Script Author.';
}
}
return 'success';
} else {
return $curl_response->message;
}
}
}
if (!function_exists('hasPermission')) {
function hasPermission($key_word)
{
if (in_array($key_word, auth()->user()->permissions ?? []) || auth()->user()->role_id == 1) {
return true;
}
return false;
}
}
if (!function_exists('isDemoMode')) {
function isDemoMode(): bool
{
return config('app.demo_mode');
}
}
if (!function_exists('isInstalled')) {
function isInstalled(): bool
{
return config('app.app_installed');
}
}
if (!function_exists('is_file_exists')) {
function is_file_exists($item, $storage = 'local')
{
if (!blank($item) && !blank($storage)) {
if ($storage == 'local') {
if (file_exists(base_path('public/' . $item))) {
return true;
}
} elseif ($storage == 'aws_s3') {
if (Storage::disk('s3')->exists($item)) {
return true;
}
} elseif ($storage == 'wasabi') {
if (Storage::disk('wasabi')->exists($item)) {
return true;
}
}
}
return false;
}
}