FilterController.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Requests\FilterRequest;
  4. use Illuminate\Support\Facades\DB;
  5. class FilterController extends Controller
  6. {
  7. const DB_TABLES = [
  8. 'orders' => 'orders_view',
  9. 'product_sku' => 'mafs_view',
  10. 'products' => 'products',
  11. 'reclamations' => 'reclamations',
  12. 'maf_order' => 'maf_orders_view',
  13. ];
  14. public function getFilters(FilterRequest $request)
  15. {
  16. $table = $request->validated('table');
  17. $column = $request->validated('column');
  18. if(!array_key_exists($table, self::DB_TABLES)) {
  19. abort(400, 'Table not found');
  20. }
  21. $dbTable = self::DB_TABLES[$table];
  22. $q = DB::table($dbTable)->select($column)->distinct();
  23. if($table !== 'reclamations') {
  24. $q->where('year' , year());
  25. }
  26. $q->whereNull('deleted_at');
  27. $result = $q->orderBy($column)->get()->pluck($column)->toArray();
  28. return response()->json($result, 200, [], JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
  29. }
  30. }