選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

56 行
1.4KB

  1. <?php
  2. namespace App\Http\Controllers\Web\Customer;
  3. use App\Http\Controllers\Web\WebController;
  4. use App\Kintone\Models\Customer;
  5. use App\Util\DateUtil;
  6. use Illuminate\Http\JsonResponse;
  7. use Illuminate\Http\Request;
  8. class UploadStudentLicenseImagesController 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(protected UploadStudentLicenseImagesParam $param)
  19. {
  20. parent::__construct();
  21. $this->middleware('auth:sanctum');
  22. }
  23. protected function run(Request $request): JsonResponse
  24. {
  25. $param = $this->param;
  26. $customer = Customer::getSelf();
  27. $access = Customer::getAccess();
  28. $data = [];
  29. foreach ($param->images as $index => $file) {
  30. $data[] = [
  31. 'fileKey' => $access->filePut($file),
  32. 'name' => sprintf("image_%d.%s", $index, $file->extension()),
  33. 'contentType' => $file->getClientMimeType(),
  34. ];
  35. }
  36. $customer->set(Customer::FIELD_STUDENT_LICENSE_IMAGES, $data);
  37. $customer->set(Customer::FIELD_STUDENT_LICENSE_IMAGES_UPLOAD_DATETIME, DateUtil::now());
  38. $access->update($customer);
  39. return $this->successResponse();
  40. }
  41. }