diff --git a/backend/app/Http/Controllers/Api/ChildrenController.php b/backend/app/Http/Controllers/Api/ChildrenController.php index 0c9a6730..5b19a259 100644 --- a/backend/app/Http/Controllers/Api/ChildrenController.php +++ b/backend/app/Http/Controllers/Api/ChildrenController.php @@ -552,10 +552,28 @@ class ChildrenController extends Controller { public function withdrawal (Request $r) { // 削除成功 try { - Child::where('id', (int)$r->child_id)->delete(); + // DBに入ります。 + DB::beginTransaction(); + + $child = Child::find((int)$r->child_id); + $img = $child->image; + $child->delete(); + + if (!is_null($img)) { + $img = str_replace('/files/', '', $child->image); + if (!Storage::disk('private')->exists($img)) { + Log::warning($img.'というパスは不正です。'); + } + else { + Storage::disk('private')->delete($img); + } + } + Session::forget($this->getGuard()); + DB::commit(); } catch (\Throwable $e) { Log::critical($e->getMessage()); + DB::rollback(); return ['status_code' => 400]; } diff --git a/backend/app/Http/Controllers/Api/FathersController.php b/backend/app/Http/Controllers/Api/FathersController.php index 8696948c..f03b2ce3 100644 --- a/backend/app/Http/Controllers/Api/FathersController.php +++ b/backend/app/Http/Controllers/Api/FathersController.php @@ -518,17 +518,29 @@ class FathersController extends Controller { public function withdrawal (Request $r) { try { + // DBに入ります。 + DB::beginTransaction(); + $father = Father::find((int)$r->father_id); $img = $father->image; $father->delete(); if (!is_null($img)) { - Storage::disk('private')->delete($img); + $img = str_replace('/files/', '', $father->image); + if (!Storage::disk('private')->exists($img)) { + Log::warning($img.'というパスは不正です。'); + } + else { + Storage::disk('private')->delete($img); + } } + Session::forget($this->getGuard()); + DB::commit(); } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); + DB::rollback(); return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; } @@ -538,10 +550,29 @@ class FathersController extends Controller { public function delete ($father_id) { try { - Father::where('id', (int)$father_id)->delete(); + // DBに入ります。 + DB::beginTransaction(); + + $father = Father::find((int)$father_id); + $img = $father->image; + $father->delete(); + + if (!is_null($img)) { + $img = str_replace('/files/', '', $father->image); + if (!Storage::disk('private')->exists($img)) { + Log::warning($img.'というパスは不正です。'); + } + else { + Storage::disk('private')->delete($img); + } + } + + Session::forget($this->getGuard()); + DB::commit(); } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); + DB::rollback(); return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; } diff --git a/backend/app/Http/Controllers/Api/MeetingsController.php b/backend/app/Http/Controllers/Api/MeetingsController.php index 7fe06d80..5572025a 100644 --- a/backend/app/Http/Controllers/Api/MeetingsController.php +++ b/backend/app/Http/Controllers/Api/MeetingsController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Validator; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; @@ -123,7 +124,7 @@ class MeetingsController extends Controller { Storage::disk('private')->put($fname, $image); $quality = 1; $imag = Image::make('/work/storage/app/private/'.$fname)->encode('jpg', $quality); - $img->orientate(); + $imag->orientate(); $imag->save('/work/storage/app/private/'.$fname); $imgname = '/files/'.$fname; @@ -814,7 +815,7 @@ class MeetingsController extends Controller { return ['status_code' => 400]; } - if (null === ($get = Meetings::select('pdf')->where('id', (int)$meeting_id)->get())) { + if (null === (Meeting::select('id')->where('id', (int)$meeting_id)->get())) { return ['status_code' => 400]; } @@ -823,15 +824,40 @@ class MeetingsController extends Controller { } try { - Meeting::where('id', (int)$meeting_id)->delete(); - Storage::disk('private')->delete($get->pdf); - if ($delimg) { - foreach ($img as $m) { - Storage::disk('private')->delete($m->image); + // DBに入ります。 + DB::beginTransaction(); + + $meeting = Meeting::find((int)$meeting_id); + $pdf = $meeting->pdf; + $meeting->delete(); + + if (!is_null($img)) { + $pdf = str_replace('/files/', '', $pdf); + if (!Storage::disk('private')->exists($pdf)) { + Log::warning($pdf.'というパスは不正です。'); + } + else { + Storage::disk('private')->delete($pdf); } } + + Storage::disk('private')->delete($pdf); + if ($delimg) { + foreach ($img as $m) { + $image = str_replace('/files/', '', $m->image); + if (!Storage::disk('private')->exists($image)) { + Log::warning($image.'というパスは不正です。'); + } + else { + Storage::disk('private')->delete($image); + } + } + } + + DB::commit(); } catch (\Throwable $e) { Log::critical($e->getMessage()); + DB::rollback(); return ['status_code' => 400]; }