You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
namespace App\Helper\Frontend;
|
|
|
|
use App\Helper\JSONResponse;
|
|
use App\Models\Tv;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* Note:
|
|
* if any of frontend component need specific api query / data specific.
|
|
* Please add function to get data here.
|
|
*/
|
|
|
|
class ApiUtilities {
|
|
|
|
// for components/app/tv/button/excel.vue
|
|
public static function tvExcel(Request $request) {
|
|
$request->validate(['a' => 'nullable|string']);
|
|
|
|
switch($request->a) {
|
|
case 'excelTemplate':
|
|
return Tv::getExcelTemplate();
|
|
break;
|
|
case 'validateData':
|
|
$tvCodes = $request->tvCodes ?? [];
|
|
$tvs = $request->tvs ?? [];
|
|
$oValidation = TV::validateExcel($tvs, $tvCodes);
|
|
return JSONResponse::Success(['oValidation' => $oValidation]);
|
|
break;
|
|
case 'uploadExcel':
|
|
$tvCodes = $request->tvCodes ?? [];
|
|
$tvs = $request->tvs ?? [];
|
|
$oValidation = TV::validateExcel($tvs, $tvCodes);
|
|
$result = TV::uploadExcel($tvs, $oValidation, $request->user());
|
|
return JSONResponse::Success($result);
|
|
break;
|
|
case 'exportData':
|
|
return Tv::getExportData($request);
|
|
break;
|
|
case 'excelDetail':
|
|
return Tv::getExcelDetail($request);
|
|
break;
|
|
|
|
}
|
|
throw new \Exception('Invalid Request Command');
|
|
}
|
|
}
|
|
?>
|