領収証発行サービス
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

46 řádky
1.0KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Contract;
  3. use App\Codes\UserRole;
  4. use App\Http\Controllers\Web\WebController;
  5. use App\Logic\Contract\CreateManager;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. class CreateController extends WebController
  9. {
  10. public function name(): string
  11. {
  12. return "契約新規登録";
  13. }
  14. public function description(): string
  15. {
  16. return "契約を新規登録する";
  17. }
  18. public function __construct(
  19. protected CreateParam $param,
  20. private CreateManager $manager
  21. ) {
  22. parent::__construct();
  23. $this->roleAllow(UserRole::SUPER_ADMIN);
  24. }
  25. protected function run(Request $request): JsonResponse
  26. {
  27. $param = $this->param;
  28. $messages = $this->manager->initForCreate()
  29. ->fill($param->toArray())
  30. ->create();
  31. if (count($messages) !== 0) {
  32. return $this->failedResponse([], $messages);
  33. }
  34. return $this->successResponse();
  35. }
  36. }