Sport.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Constants\HttpStatus;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Sport as SportModel;
  6. use App\Services\FixtureService;
  7. use Illuminate\Http\JsonResponse;
  8. use Exception;
  9. use Illuminate\Validation\ValidationException;
  10. class Sport extends Controller
  11. {
  12. public function index(): JsonResponse
  13. {
  14. $date = request()->input('date', date('Y-m-d'));
  15. $start = strtotime($date);
  16. $end = strtotime("+1 day", $start);
  17. $list = SportModel::where("game_time", ">=", $start)
  18. ->where("game_time", "<", $end)
  19. ->makeHidden(['id'])
  20. ->get();
  21. $count = SportModel::where("game_time", ">=", $start)
  22. ->where("game_time", "<", $end)->count();
  23. return $this->success(['list' => $list, 'count' => $count]);
  24. }
  25. public function odds(): JsonResponse
  26. {
  27. try {
  28. request()->validate([
  29. 'data_id' => ['required', 'string', 'min:1'],
  30. ]);
  31. $dataId = request()->input('data_id');
  32. $res = FixtureService::odds($dataId);
  33. } catch (ValidationException $e) {
  34. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  35. } catch (Exception $e) {
  36. return $this->error($e->getCode());
  37. }
  38. return $this->success($res);
  39. }
  40. public function oddsLive(): JsonResponse
  41. {
  42. try {
  43. request()->validate([
  44. 'data_id' => ['required', 'string', 'min:1'],
  45. ]);
  46. $dataId = request()->input('data_id');
  47. $res = FixtureService::oddsLive($dataId);
  48. } catch (ValidationException $e) {
  49. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  50. } catch (Exception $e) {
  51. return $this->error($e->getCode());
  52. }
  53. return $this->success($res);
  54. }
  55. }