領収証発行サービス
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.3KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Custom\HelloTechno;
  3. use App\Codes\UserRole;
  4. use App\Http\Controllers\Web\IParam;
  5. use App\Repositories\Custom\HelloTechno\UseSummaryRepository as Repository;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. class UseSummariesController extends HelloTechnoController
  10. {
  11. public function name(): string
  12. {
  13. return "[HelloTechno専用]利用実績一覧取得";
  14. }
  15. public function description(): string
  16. {
  17. return "[HelloTechno専用]利用実績の一覧を取得する";
  18. }
  19. public function __construct(
  20. protected UseSummariesParam $param,
  21. private Repository $repository
  22. ) {
  23. parent::__construct();
  24. $this->roleAllow(UserRole::NORMAL_ADMIN);
  25. }
  26. protected function getParam(): IParam
  27. {
  28. return $this->param;
  29. }
  30. protected function run(Request $request): JsonResponse
  31. {
  32. $param = $this->param;
  33. $condition = [
  34. ...$param->toArray(),
  35. Repository::CONDITION_CONTRACT_ID => Auth::user()->contract_id,
  36. ];
  37. $list = $this->repository->get($condition);
  38. return $this->successResponse([
  39. 'records' => $list
  40. ]);
  41. }
  42. }