From 4d9868e13ae428ef4140c96e315a09e1b7922d1a Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 28 Jul 2025 12:12:01 +0330 Subject: [PATCH] use datatable for reports --- .env.example | 6 ------ .../CumulativeCentersStatsController.php | 16 +++++++-------- .../CumulativeKeypressStatsController.php | 16 +++++++-------- ...CumulativeMessageRatingStatsController.php | 18 ++++++++++------- .../CumulativeVoiceRatingStatsController.php | 16 +++++++-------- app/Models/Cdr.php | 1 - config/database.php | 20 ------------------- 7 files changed, 35 insertions(+), 58 deletions(-) diff --git a/.env.example b/.env.example index e3d6ee7..d6e8d17 100644 --- a/.env.example +++ b/.env.example @@ -27,12 +27,6 @@ DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= -ASTERISK_DB_HOST= -ASTERISK_DB_PORT= -ASTERISK_DB_DATABASE= -ASTERISK_DB_USERNAME= -ASTERISK_DB_PASSWORD= - SESSION_DRIVER=database SESSION_LIFETIME=120 SESSION_ENCRYPT=false diff --git a/app/Http/Controllers/HeadquartersDashboard/CumulativeCentersStatsController.php b/app/Http/Controllers/HeadquartersDashboard/CumulativeCentersStatsController.php index 2f027d6..6c3ffdf 100644 --- a/app/Http/Controllers/HeadquartersDashboard/CumulativeCentersStatsController.php +++ b/app/Http/Controllers/HeadquartersDashboard/CumulativeCentersStatsController.php @@ -4,19 +4,15 @@ namespace App\Http\Controllers\HeadquartersDashboard; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; -use app\Http\Traits\ApiResponse; -use App\Models\CountryCallsReport; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CumulativeCentersStatsController extends Controller { - use ApiResponse; - public function index(Request $request): JsonResponse { - $data = DB::select(" + $query = DB::table('country_calls_reports')->selectRaw(" SELECT province_id, province_name, @@ -33,7 +29,6 @@ class CumulativeCentersStatsController extends Controller SUM(talked_to_operator) as talked_to_operator, AVG(average_calls_time) as average_calls_time, SUM(fails) as fails - FROM country_calls_reports GROUP BY province_id, province_name UNION ALL @@ -54,9 +49,14 @@ class CumulativeCentersStatsController extends Controller SUM(talked_to_operator), AVG(average_calls_time), SUM(fails) - FROM country_calls_reports "); - return $this->successResponse($data); + return response()->json( + DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']) + ); } } diff --git a/app/Http/Controllers/HeadquartersDashboard/CumulativeKeypressStatsController.php b/app/Http/Controllers/HeadquartersDashboard/CumulativeKeypressStatsController.php index 809af22..5f0043f 100644 --- a/app/Http/Controllers/HeadquartersDashboard/CumulativeKeypressStatsController.php +++ b/app/Http/Controllers/HeadquartersDashboard/CumulativeKeypressStatsController.php @@ -4,19 +4,15 @@ namespace App\Http\Controllers\HeadquartersDashboard; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; -use app\Http\Traits\ApiResponse; -use App\Models\CountryKeypressReport; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CumulativeKeypressStatsController extends Controller { - use ApiResponse; - public function index(Request $request): JsonResponse { - $data = DB::select(" + $query = DB::table('country_keypress_reports')->selectRaw(" SELECT province_id, province_name, @@ -35,7 +31,6 @@ class CumulativeKeypressStatsController extends Controller SUM(key2_1) as key2_1, SUM(key2_2) as key2_2, SUM(key2_3) as key2_3 - FROM country_keypress_reports GROUP BY province_id, province_name UNION ALL @@ -58,9 +53,14 @@ class CumulativeKeypressStatsController extends Controller SUM(key2_1), SUM(key2_2), SUM(key2_3) - FROM country_keypress_reports "); - return $this->successResponse($data); + return response()->json( + DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']) + ); } } diff --git a/app/Http/Controllers/HeadquartersDashboard/CumulativeMessageRatingStatsController.php b/app/Http/Controllers/HeadquartersDashboard/CumulativeMessageRatingStatsController.php index dadaad3..6135863 100644 --- a/app/Http/Controllers/HeadquartersDashboard/CumulativeMessageRatingStatsController.php +++ b/app/Http/Controllers/HeadquartersDashboard/CumulativeMessageRatingStatsController.php @@ -2,18 +2,18 @@ namespace App\Http\Controllers\HeadquartersDashboard; +use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; use app\Http\Traits\ApiResponse; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CumulativeMessageRatingStatsController extends Controller { - use ApiResponse; - - public function index(): JsonResponse + public function index(Request $request): JsonResponse { - $data = DB::select(" + $query = DB::table('country_message_rating_reports')->selectRaw(" SELECT province_id, province_name, @@ -26,7 +26,6 @@ class CumulativeMessageRatingStatsController extends Controller SUM(action3) as action3, SUM(action4) as action4, SUM(action5) as action5 - FROM country_message_rating_reports GROUP BY province_id, province_name UNION ALL @@ -43,9 +42,14 @@ class CumulativeMessageRatingStatsController extends Controller SUM(action3), SUM(action4), SUM(action5) - FROM country_message_rating_reports "); - return $this->successResponse($data); + return response()->json( + DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']) + ); } } diff --git a/app/Http/Controllers/HeadquartersDashboard/CumulativeVoiceRatingStatsController.php b/app/Http/Controllers/HeadquartersDashboard/CumulativeVoiceRatingStatsController.php index dc37863..1c5d7ff 100644 --- a/app/Http/Controllers/HeadquartersDashboard/CumulativeVoiceRatingStatsController.php +++ b/app/Http/Controllers/HeadquartersDashboard/CumulativeVoiceRatingStatsController.php @@ -4,19 +4,15 @@ namespace App\Http\Controllers\HeadquartersDashboard; use App\Facades\DataTable\DataTableFacade; use App\Http\Controllers\Controller; -use app\Http\Traits\ApiResponse; -use App\Models\CountryVoiceRatingReport; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; class CumulativeVoiceRatingStatsController extends Controller { - use ApiResponse; - public function index(Request $request): JsonResponse { - $data = DB::select(" + $query = DB::table('country_voice_rating_reports')->selectRaw(" SELECT province_id, province_name, @@ -24,7 +20,6 @@ class CumulativeVoiceRatingStatsController extends Controller SUM(message_format_ok) as message_format_ok, SUM(message_quality_nok) as message_quality_nok, SUM(message_format_nok) as message_format_nok - FROM country_voice_rating_reports GROUP BY province_id, province_name UNION ALL @@ -36,9 +31,14 @@ class CumulativeVoiceRatingStatsController extends Controller SUM(message_format_ok), SUM(message_quality_nok), SUM(message_format_nok) - FROM country_voice_rating_reports "); - return $this->successResponse($data); + return response()->json( + DataTableFacade::run( + $query, + $request, + allowedFilters: ['*'], + allowedSortings: ['*']) + ); } } diff --git a/app/Models/Cdr.php b/app/Models/Cdr.php index 1146aac..50c6c63 100644 --- a/app/Models/Cdr.php +++ b/app/Models/Cdr.php @@ -6,6 +6,5 @@ use Illuminate\Database\Eloquent\Model; class Cdr extends Model { - protected $connection = 'asterisk'; protected $table = 'cdr'; } diff --git a/config/database.php b/config/database.php index a7c6244..3bbe18f 100644 --- a/config/database.php +++ b/config/database.php @@ -111,26 +111,6 @@ return [ // 'encrypt' => env('DB_ENCRYPT', 'yes'), // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'), ], - - 'asterisk' => [ - 'driver' => 'mysql', - 'url' => env('DB_URL'), - 'host' => env('ASTERISK_DB_HOST', '127.0.0.1'), - 'port' => env('ASTERISK_DB_PORT', '3306'), - 'database' => env('ASTERISK_DB_DATABASE', 'laravel'), - 'username' => env('ASTERISK_DB_USERNAME', 'root'), - 'password' => env('ASTERISK_DB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), - 'charset' => env('DB_CHARSET', 'utf8mb4'), - 'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'), - 'prefix' => '', - 'prefix_indexes' => true, - 'strict' => true, - 'engine' => null, - 'options' => extension_loaded('pdo_mysql') ? array_filter([ - PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), - ]) : [], - ], ], /*