Kaynağa Gözat

画像取得 対応

master
sosuke.iwabuchi 2 yıl önce
ebeveyn
işleme
2388437b34
6 değiştirilmiş dosya ile 86 ekleme ve 3 silme
  1. +42
    -0
      app/Http/Controllers/Web/Image/ImageController.php
  2. +18
    -0
      app/Http/Controllers/Web/Image/ImageParam.php
  3. +19
    -0
      app/Http/Controllers/Web/Image/SeasonTicketContractImageController.php
  4. +2
    -1
      app/Http/Controllers/Web/WebController.php
  5. +2
    -2
      app/Kintone/KintoneAccess.php
  6. +3
    -0
      routes/web.php

+ 42
- 0
app/Http/Controllers/Web/Image/ImageController.php Dosyayı Görüntüle

@@ -0,0 +1,42 @@
<?php

namespace App\Http\Controllers\Web\Image;

use App\Http\Controllers\Web\WebController;
use App\Kintone\KintoneAccess;
use App\Kintone\Models\SeasonTicketContract;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

abstract class ImageController extends WebController
{

public function name(): string
{
return "画像取得";
}

public function description(): string
{
return "KINTONEから画像を取得する";
}


public function __construct(protected ImageParam $param)
{
parent::__construct();
$this->middleware('auth:sanctum');
}

protected function run(Request $request): Response
{
$access = $this->getAccess();
$file = $access->fileGet($this->param->id);
return response($file->body(), 200, [
'Content-Length' => $file->header('Content-Length'),
'Content-Type' => $file->header('Content-Type'),
]);
}

abstract protected function getAccess(): KintoneAccess;
}

+ 18
- 0
app/Http/Controllers/Web/Image/ImageParam.php Dosyayı Görüntüle

@@ -0,0 +1,18 @@
<?php

namespace App\Http\Controllers\Web\Image;

use App\Http\Controllers\Web\BaseParam;

/**
* @property string $id
*/
class ImageParam extends BaseParam
{
public function rules(): array
{
return [
'id' => $this->str(),
];
}
}

+ 19
- 0
app/Http/Controllers/Web/Image/SeasonTicketContractImageController.php Dosyayı Görüntüle

@@ -0,0 +1,19 @@
<?php

namespace App\Http\Controllers\Web\Image;

use App\Kintone\KintoneAccess;
use App\Kintone\Models\SeasonTicketContract;

class SeasonTicketContractImageController extends ImageController
{
public function name(): string
{
return "画像取得[車室情報管理]";
}

protected function getAccess(): KintoneAccess
{
return SeasonTicketContract::getAccess();
}
}

+ 2
- 1
app/Http/Controllers/Web/WebController.php Dosyayı Görüntüle

@@ -13,6 +13,7 @@ use Exception;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Client\Response as ClientResponse;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
@@ -140,7 +141,7 @@ abstract class WebController extends BaseController
* @param Request $request
* @return Response|JsonResponse|string
*/
protected function run(Request $request): Response|JsonResponse|BinaryFileResponse|string
protected function run(Request $request): Response|JsonResponse|BinaryFileResponse|ClientResponse |string
{
return $this->successResponse();
}


+ 2
- 2
app/Kintone/KintoneAccess.php Dosyayı Görüntüle

@@ -385,8 +385,7 @@ class KintoneAccess
{
$response = Http::withHeaders([
"X-Cybozu-API-Token" => $this->apiToken,
"Content-Type" => "application/json",
])->get($this->getCursorUrl(), [
])->get($this->getFileUrl(), [
"fileKey" => $fileKey,
]);

@@ -394,6 +393,7 @@ class KintoneAccess
$e = $response->toException();
if ($e instanceof Exception) {
Log::error($e->getMessage());
Log::error($response->body());
throw $e;
}
}


+ 3
- 0
routes/web.php Dosyayı Görüntüle

@@ -13,5 +13,8 @@ use App\Util\RouteHelper;
|
*/

// 画像取得
RouteHelper::get('/image/season-ticket-contract', App\Http\Controllers\Web\Image\SeasonTicketContractImageController::class);

// ルーティングで適合しない場合はフロント側のRoutingにゆだねる
RouteHelper::get('/{any?}', App\Http\Controllers\Web\IndexController::class)->where('any', '.*');

Yükleniyor…
İptal
Kaydet