From e780a6a9128aff3806e38e37dc653cea095bae69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Wed, 6 Oct 2021 14:50:13 +0900 Subject: [PATCH 1/8] =?UTF-8?q?API=E3=81=AE=E5=A4=89=E6=9B=B4=E3=81=A7?= =?UTF-8?q?=E3=81=99=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ChildrenController.php | 271 +++++++++++++----- .../Controllers/Api/ContactsController.php | 2 +- .../Api/EmailActivationsController.php | 19 -- .../Api/FatherRelationsController.php | 50 +--- .../Controllers/Api/FathersController.php | 186 ++++++++---- .../Controllers/Api/LoginLimitsController.php | 46 --- .../Api/MeetingApprovalsController.php | 142 +++++---- .../Api/MeetingImagesController.php | 22 +- .../Controllers/Api/MeetingsController.php | 42 ++- .../Api/TelActivationsController.php | 18 -- backend/routes/api.php | 145 +++++----- 11 files changed, 550 insertions(+), 393 deletions(-) delete mode 100644 backend/app/Http/Controllers/Api/EmailActivationsController.php delete mode 100644 backend/app/Http/Controllers/Api/LoginLimitsController.php delete mode 100644 backend/app/Http/Controllers/Api/TelActivationsController.php diff --git a/backend/app/Http/Controllers/Api/ChildrenController.php b/backend/app/Http/Controllers/Api/ChildrenController.php index d3b8233d..8fb239a9 100644 --- a/backend/app/Http/Controllers/Api/ChildrenController.php +++ b/backend/app/Http/Controllers/Api/ChildrenController.php @@ -10,92 +10,209 @@ use App\Models\FatherRelation; use App\Models\MeetingApprovals; class ChildrenController extends Controller { - public function login () {} + public function login () {} - public function registerTemporary () {} + public function registerTemporary () {} + public function registerMain () {} + + public function requestPassword () {} - public function registerMain () {} - - public function checkTel () {} - - public function list () { - // 親一覧の取得に成功 - if ($result = Child::orderBy('created_at', 'desc')->get()->toArray()) { - return ['status_code' => 200, 'params' => $result]; - } - - // 親一覧の取得に失敗 - return ['status_code' => 400]; - } - - public function listOfFather (Request $r) { - $result = []; - $child_select = ['id', 'image', 'last_name', 'first_name']; - - if ($list = FatherRelation::where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $l) { - $result[] = Child::select($child_select)->find($l['father_id']); - } - - return ['status_code' => 200, 'params' => $result]; - } - - return ['status_code' => 400]; - } - - public function listOfMeeting (Request $r) { - $result = []; - $child_select = ['id', 'image', 'last_name', 'first_name']; - - if ($list = MeetingApprovals::where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $l) { - $result[] = Child::select($child_select)->find($l['id']); - } - - return ['status_code' => 200, 'params' => $result]; - } - - return ['status_code' => 400]; - } - - public function listOfMeetingNotifyUnapprovel () {} - - public function listOfMeetingNotifyApprovel () {} - - public function detail (Request $r, $child_id) { - $result = []; - $child_select = ['email', 'tel', 'last_name', 'first_name', 'image', 'company']; - $father_relation_select = ['hire_at']; - - // 親詳細の取得に成功 - if ($list = Child::where('id', $child_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = Child::select($child_select)->find($l['id']); - if (isset($r->father_id)) { - $result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first(); + public function list () { + // 親一覧の取得に成功 + if ($result = Child::orderBy('created_at', 'desc')->get()->toArray()) { + return ['status_code' => 200, 'params' => $result]; } - } - return ['status_code' => 200, 'params' => $result]; + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親詳細の取得に失敗 - return ['status_code' => 400]; - } + public function listOfFather (Request $r) { + $result = []; + $child_select = ['id', 'image', 'last_name', 'first_name']; - public function updateImage ($child_id) {} + if ($list = FatherRelation::where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get()->toArray()) { + foreach ($list as $l) { + $result[] = Child::select($child_select)->find($l['father_id']); + } - public function updateProfile ($child_id) {} + return ['status_code' => 200, 'params' => $result]; + } - public function updatePassword ($child_id) {} - - public function delete ($child_id) { - // 削除成功 - if (Child::where('id', $child_id)->delete()) { - return ['status_code' => 200]; + return ['status_code' => 400]; } - // 削除失敗 - return ['status_code' => 400]; - } + public function listOfMeeting (Request $r) { + $result = []; + $child_select = ['id', 'image', 'last_name', 'first_name']; + + if ($list = MeetingApprovals::where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get()->toArray()) { + foreach ($list as $l) { + $result[] = Child::select($child_select)->find($l['id']); + } + + return ['status_code' => 200, 'params' => $result]; + } + + return ['status_code' => 400]; + } + + public function listOfMeetingNotifyUnapprovel (Request $r) { + if (!isset($r->meeting_id)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + $result = []; + $child_select = ['id', 'image', 'last_name', 'first_name', 'tel']; + $meeting_approvals_select = ['approval_at']; + + if ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()->toArray()) { + foreach ($list as $i => $l) { + $result[] = Child::select($child_select)->where('id', $l['child_id'])->get(); + $result[$i]['meeting_approval'] = $l['approval_at']; + } + + return ['status_code' => 200, 'params' => $result]; + } + + return ['status_code' => 400]; + } + + public function listOfMeetingNotifyApprovel (Request $r) { + if (!isset($r->meeting_id)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + $result = []; + $child_select = ['id', 'image', 'last_name', 'first_name', 'tel']; + $meeting_approvals_select = ['approval_at']; + + if ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()->toArray()) { + foreach ($list as $i => $l) { + $result[] = Child::select($child_select)->where('id', $l['child_id'])->get(); + $result[$i]['meeting_approval'] = $l['approval_at']; + } + + return ['status_code' => 200, 'params' => $result]; + } + + return ['status_code' => 400]; + } + + public function detail (Request $r, $child_id) { + $result = []; + $child_select = ['email', 'tel', 'last_name', 'first_name', 'image', 'company']; + $father_relation_select = ['hire_at']; + + // 親詳細の取得に成功 + if ($list = Child::where('id', $child_id)->orderBy('created_at', 'desc')->get()->toArray()) { + foreach ($list as $i => $l) { + $result[] = Child::select($child_select)->find($l['id']); + if (isset($r->father_id)) { + $result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first(); + } + } + + return ['status_code' => 200, 'params' => $result]; + } + + // 親詳細の取得に失敗 + return ['status_code' => 400]; + } + + public function updateImage (Request $r, $child_id) { + if (!isset($r->image) || !isset($child_id)) { + return ['status_code' => 400, 'error_messages' => ['プロフィールの更新にしました。']]; + } + + // バリデーションエラー + $validate = Validator::make($r->all(), ['image' => 'max:1024|mimes:jpg,png,gif']); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + try { + Child::where('id', $child_id)->update($r->all()); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['プロフィールの更新に失敗しました。']]; + } + + // 成功 + return ['status_code' => 200, 'success_messages' => ['プロフィールの更新に成功しました。']]; + } + + public function updateProfile (Request $r, $child_id) { + if (!isset($child_id)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + // バリデーションエラー + $validate = Validator::make($r->all(), [ + 'email' => 'required|unique:children|max:255|email|alpha_num', + 'tel' => 'required|unique:children|max:11|numeric|starts_with:0', + 'last_name' => 'required|max:100', + 'first_name' => 'required|max:100', + 'company' => 'max:100', + ]); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + try { + Child::where('id', $child_id)->update($r->all()); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + // 成功 + return ['status_code' => 200, 'success_messages' => ['画像の更新に成功しました。']]; + } + + public function updatePassword (Request $r, $child_id) { + if (!isset($r->image) || !isset($child_id)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + // バリデーションエラー + $validate = Validator::make($r->all(), [ + 'password' => 'required|min:8|max:72|confirmed', + ]); + + $validate->after(function ($validate) { + if (count($r->image) > 10) { + $validate->errors()->add('count', '10枚以上登録できません。'); + } + }); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + try { + Child::where('id', $child_id)->update($r->all()); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['パスワードの更新に失敗しました。']]; + } + + // 成功 + return ['status_code' => 200, 'success_messages' => ['パスワードの更新に成功しました。']]; + } + + public function withdrawal ($child_id) { + // 削除成功 + if (Child::where('id', $child_id)->delete()) { + return ['status_code' => 200]; + } + + // 削除失敗 + return ['status_code' => 400]; + } } diff --git a/backend/app/Http/Controllers/Api/ContactsController.php b/backend/app/Http/Controllers/Api/ContactsController.php index 2076c012..746935c8 100644 --- a/backend/app/Http/Controllers/Api/ContactsController.php +++ b/backend/app/Http/Controllers/Api/ContactsController.php @@ -29,7 +29,7 @@ class ContactsController extends Controller { } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => 'お問い合わせの送信に失敗しました。']; + return ['status_code' => 400, 'error_messages' => ['お問い合わせの送信に失敗しました。']]; } // 成功 diff --git a/backend/app/Http/Controllers/Api/EmailActivationsController.php b/backend/app/Http/Controllers/Api/EmailActivationsController.php deleted file mode 100644 index 6294ffd5..00000000 --- a/backend/app/Http/Controllers/Api/EmailActivationsController.php +++ /dev/null @@ -1,19 +0,0 @@ -delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; - } -} diff --git a/backend/app/Http/Controllers/Api/FatherRelationsController.php b/backend/app/Http/Controllers/Api/FatherRelationsController.php index 1981634b..d38fa162 100644 --- a/backend/app/Http/Controllers/Api/FatherRelationsController.php +++ b/backend/app/Http/Controllers/Api/FatherRelationsController.php @@ -8,55 +8,21 @@ use Illuminate\Http\Request; use App\Models\FatherRelation; class FatherRelationsController extends Controller { - public function register (Request $r) { - if (!isset($r->child_id) || !isset($r->father_id) || !isset($r->hire_at)) { - return ['status_code' => 400, 'success_messages' => '子の登録に失敗しました。']; - } - - $insert = [ - 'father_id' => $r->father_id, - 'child_id' => $r->child_id, - 'hire_at' => date('Y-m-d H:i:s', strtotime($r->hire_at)) - ]; - - if (FatherRelation::create($insert)) { - return ['status_code' => 200, 'success_messages' => '子の登録に成功しました。']; - } - - return ['status_code' => 400, 'success_messages' => '子の登録に失敗しました。']; - } - public function updateHireDate (Request $r, $child_id) { if (!isset($child_id) || !isset($r->father_id) || !isset($r->hire_at)) { - return ['status_code' => 400, 'success_messages' => '子の入社日の更新に失敗しました。']; + return ['status_code' => 400, 'success_messages' => ['子の入社日の更新に失敗しました。']]; } $update = ['hire_at' => date('Y-m-d H:i:s', strtotime($r->hire_at))]; - if (FatherRelation::where('father_id', $r->father_id)->where('child_id', $child_id)->update($update)) { - return ['status_code' => 200, 'success_messages' => '子の入社日の更新に成功しました。']; + try { + FatherRelation::where('father_id', $r->father_id)->where('child_id', $child_id)->update($update); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'success_messages' => ['子の入社日の更新に失敗しました。']]; } - return ['status_code' => 400, 'success_messages' => '子の入社日の更新に失敗しました。']; - } - - public function deleteRelationFather ($father_id) { - // 削除成功 - if (FatherRelation::where('father_id', $father_id)->delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; - } - - public function deleteRelationChild ($child_id) { - // 削除成功 - if (FatherRelation::where('child_id', $child_id)->delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200, 'success_messages' => ['子の入社日の更新に成功しました。']]; } } diff --git a/backend/app/Http/Controllers/Api/FathersController.php b/backend/app/Http/Controllers/Api/FathersController.php index afdfac74..96009692 100644 --- a/backend/app/Http/Controllers/Api/FathersController.php +++ b/backend/app/Http/Controllers/Api/FathersController.php @@ -9,77 +9,165 @@ use App\Models\Father; use App\Models\FatherRelation; class FathersController extends Controller { - public function login () {} + public function login () {} - public function registerTemporary () {} + public function registerTemporary () {} - public function registerMain () {} + public function registerMain () {} - public function list () { - $result = []; - $father_select = ['id', 'company', 'image']; - $father_relation_select = ['created_at']; + public function list () { + $result = []; + $father_select = ['id', 'company', 'image']; + $father_relation_select = ['created_at']; - // 親一覧の取得に成功 - if ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l['id'])->first(); - } + // 親一覧の取得に成功 + if ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get()->toArray()) { + foreach ($list as $i => $l) { + $result[] = $l; + $result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l['id'])->first(); + } - return ['status_code' => 200, 'params' => $result]; + return ['status_code' => 200, 'params' => $result]; + } + + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親一覧の取得に失敗 - return ['status_code' => 400]; - } + public function listOfChild (Request $r) { + $result = []; + $father_select = ['id', 'company', 'image']; - public function listOfChild (Request $r) { - $result = []; - $father_select = ['id', 'company', 'image']; + // 親一覧の取得に成功 + if ($list = FatherRelation::where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get()->toArray()) { + $result = []; - // 親一覧の取得に成功 - if ($list = FatherRelation::where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get()->toArray()) { - $result = []; + foreach ($list as $l) { + $result[] = Father::select($father_select)->find($l['father_id']); + } - foreach ($list as $l) { - $result[] = Father::select($father_select)->find($l['father_id']); - } + return ['status_code' => 200, 'params' => $result]; + } - return ['status_code' => 200, 'params' => $result]; + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親一覧の取得に失敗 - return ['status_code' => 400]; - } + public function detail ($father_id) { + $father_select = ['id', 'email', 'company', 'image', 'tel']; - public function detail ($father_id) { - $father_select = ['id', 'email', 'company', 'image', 'tel']; + // 親詳細の取得に成功 + if ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray()) { + return ['status_code' => 200, 'params' => $result]; + } - // 親詳細の取得に成功 - if ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray()) { - return ['status_code' => 200, 'params' => $result]; + // 親詳細の取得に失敗 + return ['status_code' => 400]; } - // 親詳細の取得に失敗 - return ['status_code' => 400]; - } + public function updateImage (Request $r, $father_id) { + if (!isset($r->image) || !isset($father_id)) { + return ['status_code' => 400, 'error_messages' => 'アップロードに失敗しました。']; + } - public function updateImage ($father_id) {} + // バリデーションエラー + $validate = Validator::make($r->all(), ['image' => 'max:1024|mimes:jpg,png,gif']); + // 300x300px - public function updateProfile ($father_id) {} + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } - public function updatePassword ($father_id) {} + try { + Father::where('id', $father_id)->update($r->all()); + } catch (\Throwable $e) { + // 親プロフィール画像のアップロードに失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['アップロードに失敗しました。']]; + } - public function delete ($father_id) { - // 削除成功 - if (Father::where('id', $father_id)->delete()) { - return ['status_code' => 200]; + // 親プロフィール画像のアップロードに成功 + return ['status_code' => 200, 'success_messages' => ['アップロードに成功しました。']]; } - // 削除失敗 - return ['status_code' => 400]; - } + public function updateProfile (Request $r, $father_id) { + if (!isset($father_id)) { + return ['status_code' => 400, 'error_messages' => 'プロフィールの更新に失敗しました。']; + } - public function checkEmail () {} + // バリデーションエラー + $validate = Validator::make($r->all(), [ + 'email' => 'required|unique:fathers|max:255|email|alpha_num', + 'company' => 'max:100', + 'profile' => 'max:1000', + 'tel' => 'required|unique:fathers|max:11|numeric|starts_with:0', + ]); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + try { + Father::where('id', $father_id)->update($r->all()); + } catch (\Throwable $e) { + // 親プロフィール更新失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + // 親プロフィール更新成功 + return ['status_code' => 200, 'success_messages' => ['画像の更新に成功しました。']]; + } + + public function updatePassword (Request $r, $father_id) { + if (!isset($r->image) || !isset($father_id)) { + return ['status_code' => 400, 'error_messages' => 'パスワードの更新に失敗しました。']; + } + + // バリデーションエラー + $validate = Validator::make($r->all(), [ + 'password' => 'required|min:8|max:72|confirmed', + ]); + + $validate->after(function ($validate) { + if (count($r->image) > 10) { + $validate->errors()->add('count', '10枚以上登録できません。'); + } + }); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + try { + Father::where('id', $father_id)->update($r->all()); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['パスワードの更新に失敗しました。']]; + } + + // 成功 + return ['status_code' => 200, 'success_messages' => ['パスワードの更新に成功しました。']]; + } + + public function withdrawal ($father_id) { + // 成功 + if (Father::where('id', $father_id)->delete()) { + return ['status_code' => 200, 'success_messages' => ['親の削除に成功しました。']]; + } + + // 失敗 + return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; + } + + public function delete ($meeting_id) { + // 成功 + if (Meeting::where('id', $meeting_id)->delete()) { + return ['status_code' => 200, 'success_messages' => ['ミーティングを削除に成功しました。']]; + } + + // 失敗 + return ['status_code' => 400, 'error_messages' => ['ミーティングの削除に失敗しました。']]; + } } diff --git a/backend/app/Http/Controllers/Api/LoginLimitsController.php b/backend/app/Http/Controllers/Api/LoginLimitsController.php deleted file mode 100644 index 1e321cdd..00000000 --- a/backend/app/Http/Controllers/Api/LoginLimitsController.php +++ /dev/null @@ -1,46 +0,0 @@ -user_agent)) { - return ['status_code' => 400, 'error_messages' => 'ユーザーエイジェントを読めません。']; - } - - // 受取 - if ($get = LoginLimits::where('user_agent', $r->user_agent)->first()) { - // 失敗数は10以上だと、エラーを出します。以内の場合、失敗数を増えます。 - if ($get->fail_number >= 10) { - return ['status_code' => 400, 'error_messages' => 'ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']; - } - else { - $update = ['fail_number' => $get->fail_number+1]; - LoginLimits::where('user_agent', $r->user_agent)->update($update); - } - } - else { - // まだこのuser_agentがなければ、追加します。 - $create = ['user_agent' => $r->user_agent, 'fail_number' => 1]; - LoginLimits::create($create); - } - - return ['status' => 200]; - } - - public function delete (Request $r) { - // 削除成功 - if (LoginLimits::where('user_agent', $r->user_agent)->delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; - } -} diff --git a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php index e043571f..d124dfe7 100644 --- a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php +++ b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php @@ -10,65 +10,109 @@ use App\Models\Meeting; use App\Models\MeetingApprovals; class MeetingApprovalsController extends Controller { - public function register (Request $r) {} - - public function registerOfApproval (Request $r) {} - - public function listChildrenOfMeeting (Request $r) {} - - public function listChildrenOfApprovel (Request $r) { - $meeting_select = ['id', 'child_id', 'approval_at']; - $child_select = ['id', 'image', 'last_name', 'first_name']; - - // meeting_idでミーティングの許可があれば - if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()) { - // 子を付いてみて。child_idがなければ、すぐ400になります。 - foreach ($params as $p) { - if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { - return ['status' => 400]; + public function registerApproval (Request $r) { + if (!isset($r->meeting_id) || !isset($r->child_id)) { + return ['status' => 400, 'error_messages' => ['承認に失敗しました。']]; } - } - return ['status' => 200, 'params' => $params]; + if (MeetingApprovals::where('id', $r->meeting_id)->where('child_id', $r->child_id)->first()) { + return ['status_code' => 200, 'success_messages' => ['承認しました。']]; + } + + return ['status_code' => 400, 'error_messages' => ['承認に失敗しました。']]; } - // エラーの場合 - return ['status' => 400]; - } - - public function listChildrenOfUnapprovel (Request $r) { - $meeting_select = ['id', 'child_id', 'approval_at']; - $child_select = ['id', 'image', 'last_name', 'first_name']; - - // meeting_idでミーティングの許可がなければ - if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()) { - // 子を付いてみて。child_idがなければ、すぐ400になります。 - foreach ($params as $p) { - if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { - return ['status' => 400]; + public function listChildrenOfMeeting (Request $r) { + if (!isset($r->meeting_id) || !isset($r->child_id)) { + return ['status' => 400, 'error_messages' => ['承認に失敗しました。']]; } - } - return ['status' => 200, 'params' => $params]; + $meeting_approvals_select = ['id', 'child_id', 'approval_at']; + $update = ['hire_at' => date('Y-m-d H:i:s', strtotime($r->hire_at))]; + + if ($params = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->where('child_id', $r->child_id)->get()) { + if (FatherRelation::where('child_id', $r->child_id)->update($update)) { + return ['status' => 200, 'success_messages' => ['承認しました。']]; + } + } + + // エラーの場合 + return ['status' => 400, 'error_messages' => ['承認に失敗しました。']]; } - // エラーの場合 - return ['status' => 400]; - } + public function listChildrenOfApprovel (Request $r) { + if (!isset($r->meeting_id)) { + return ['status_code' => 400]; + } - public function deleteRelationMeeting ($meeting_id) { - // 削除成功 - if (MeetingApprovals::where('meeting_id', $meeting_id)->delete()) return ['status_code' => 200]; + $meeting_approvals_select = ['id', 'child_id', 'approval_at']; + $child_select = ['id', 'image', 'last_name', 'first_name']; - // 削除失敗 - return ['status_code' => 400]; - } + // meeting_idでミーティングの許可があれば + if ($params = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()) { + // 子を付いてみて。child_idがなければ、すぐ400になります。 + foreach ($params as $p) { + if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { + return ['status' => 400]; + } + } - public function deleteRelationChild ($child_id) { - // 削除成功 - if (MeetingApprovals::where('child_id', $child_id)->delete()) return ['status_code' => 200]; + return ['status' => 200, 'params' => $params]; + } - // 削除失敗 - return ['status_code' => 400]; - } + // エラーの場合 + return ['status' => 400]; + } + + public function listChildrenOfUnapprovel (Request $r) { + if (!isset($r->meeting_id)) { + return ['status_code' => 400]; + } + + $meeting_select = ['id', 'child_id', 'approval_at']; + $child_select = ['id', 'image', 'last_name', 'first_name']; + + // meeting_idでミーティングの許可がなければ + if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()) { + // 子を付いてみて。child_idがなければ、すぐ400になります。 + foreach ($params as $p) { + if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { + return ['status' => 400]; + } + } + + return ['status' => 200, 'params' => $params]; + } + + // エラーの場合 + return ['status' => 400]; + } + + public function deleteRelationMeeting ($meeting_id) { + if (!isset($meeting_id)) { + return ['status_code' => 400]; + } + + // 削除成功 + if (MeetingApprovals::where('meeting_id', $meeting_id)->delete()) { + return ['status_code' => 200]; + } + + // 削除失敗 + return ['status_code' => 400]; + } + + public function deleteRelationChild ($child_id) { + if (!isset($child_id)) { + return ['status_code' => 400]; + } + + // 削除成功 + if (MeetingApprovals::where('child_id', $child_id)->delete()) { + return ['status_code' => 200]; + } + + // 削除失敗 + return ['status_code' => 400]; + } } diff --git a/backend/app/Http/Controllers/Api/MeetingImagesController.php b/backend/app/Http/Controllers/Api/MeetingImagesController.php index 3c075e05..007a2ccc 100644 --- a/backend/app/Http/Controllers/Api/MeetingImagesController.php +++ b/backend/app/Http/Controllers/Api/MeetingImagesController.php @@ -10,6 +10,10 @@ use App\Models\MeetingImage; class MeetingImagesController extends Controller { public function register (Request $r) { + if (!isset($r->meeting_id)) { + return ['status' => 400]; + } + foreach ($r->all() as $i) { $validate = Validator::make($i, ['image' => 'file|max:1024|mimes:jpg,png,gif']); } @@ -24,16 +28,30 @@ class MeetingImagesController extends Controller { return ['status_code' => 422, 'error_messages' => $validate->errors()]; } - $create = ['meeting_id' => $meeting_id, 'image' => $image]; + $insert = ['meeting_id' => $meeting_id, 'image' => $image]; foreach ($r->images as $image) { - if (!MeetingImage::create($create)) { + try { + MeetingImage::create($insert); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); return ['status_code' => 400]; } } return ['status_code' => 200]; } + public function delete ($meeting_id) { + // 削除成功 + if (MeetingImage::where('meeting_id', $meeting_id)->delete()) { + return ['status_code' => 200]; + } + + // 削除失敗 + return ['status_code' => 400]; + } + public function deleteRelationMeeting ($meeting_id) { // 削除成功 if (MeetingImage::where('meeting_id', $meeting_id)->delete()) { diff --git a/backend/app/Http/Controllers/Api/MeetingsController.php b/backend/app/Http/Controllers/Api/MeetingsController.php index 73cb48ba..60bda358 100644 --- a/backend/app/Http/Controllers/Api/MeetingsController.php +++ b/backend/app/Http/Controllers/Api/MeetingsController.php @@ -15,33 +15,37 @@ use App\Models\Father; class MeetingsController extends Controller { public function register (Request $r) { if (!isset($r->father_id)) { - return ['status_code' => 400, 'error_messages' => 'ミーティングの登録に失敗しました。']; + return ['status_code' => 400, 'error_messages' => ['ミーティングの登録に失敗しました。']]; } $validate = Validator::make($r->all(), [ - 'title' => 'required|max:100', - 'text' => 'required|max:2000', - 'memo' => 'max:2000', - 'pdf' => 'mimes:pdf' + 'title' => 'required|max:100', + 'text' => 'required|max:2000', + 'memo' => 'max:2000', + 'pdf' => 'mimes:pdf' ]); if ($validate->fails()) { return ['status_code' => 422, 'error_messages' => $validate->errors()]; } - $create = [ - 'father_id' => $r->father_id, - 'title' => $r->title, - 'text' => $r->text, - 'memo' => $r->memo, - 'pdf' => $r->pdf + $insert = [ + 'father_id' => $r->father_id, + 'title' => $r->title, + 'text' => $r->text, + 'memo' => $r->memo, + 'pdf' => $r->pdf ]; - if (Child::create($create)) { - return ['status_code' => 200, 'success_messages' => 'ミーティングの登録に成功しました。']; + try { + Child::create($insert); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['ミーティングの登録に失敗しました。']]; } - return ['status_code' => 400, 'error_messages' => 'ミーティングの登録に失敗しました。']; + return ['status_code' => 200, 'success_messages' => ['ミーティングの登録に成功しました。']]; } public function registerFavorite (Request $r) { @@ -413,14 +417,4 @@ class MeetingsController extends Controller { // 削除失敗 return ['status_code' => 400]; } - - public function deleteRelationFather ($father_id) { - // 削除成功 - if (Meetings::where('father_id', $father_id)->delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; - } } diff --git a/backend/app/Http/Controllers/Api/TelActivationsController.php b/backend/app/Http/Controllers/Api/TelActivationsController.php deleted file mode 100644 index b31d1735..00000000 --- a/backend/app/Http/Controllers/Api/TelActivationsController.php +++ /dev/null @@ -1,18 +0,0 @@ -delete()) return ['status_code' => 200]; - - // 削除失敗 - return ['status_code' => 400]; - } -} diff --git a/backend/routes/api.php b/backend/routes/api.php index dddbd205..abb1adde 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -14,81 +14,94 @@ use Illuminate\Support\Facades\Route; | */ +// ContactsController +//// 不明 +Route::post('/contacts/register/', '\App\Http\Controllers\Api\ContactsController@register'); + // FathersController -// Route::post('/fathers/login/', '\App\Http\Controllers\Api\FathersController@login'); -// Route::post('/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary'); +//// 不明 // Route::post('/fathers/registerMain/', '\App\Http\Controllers\Api\FathersController@registerMain'); -Route::get('/fathers/list/', '\App\Http\Controllers\Api\FathersController@list'); -Route::get('/fathers/listOfChild/', '\App\Http\Controllers\Api\FathersController@listOfChild'); -Route::get('/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail'); -// Route::put('/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage'); -// Route::put('/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile'); -// Route::put('/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword'); -Route::delete('/fathers/delete/{father_id}', '\App\Http\Controllers\Api\FathersController@delete'); -// Route::post('/fathers/checkEmail/', '\App\Http\Controllers\Api\FathersController@checkEmail'); +// Route::post('/fathers/login/', '\App\Http\Controllers\Api\FathersController@login'); -// EmailActivationsController -Route::delete('/email-activations/deleteRelationOfFather/', '\App\Http\Controllers\Api\EmailActivationsController@deleteRelationOfFather'); +//// admin +Route::get('/admin/fathers/list/', '\App\Http\Controllers\Api\FathersController@list'); +Route::delete('/admin/fathers/delete/{father_id}', '\App\Http\Controllers\Api\FathersController@delete'); +// Route::post('/admin/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary'); -// TelActivationsController -Route::delete('/tel-activations/deleteRelationOfChild/', '\App\Http\Controllers\Api\TelActivationsController@deleteRelationOfChild'); +//// fathers +Route::put('/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage'); +Route::put('/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile'); +Route::put('/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword'); +Route::delete('/fathers/withdrawal/', '\App\Http\Controllers\Api\FathersController@withdrawal'); -// MeetingsController -Route::post('/meetings/register/', '\App\Http\Controllers\Api\MeetingsController@register'); -Route::post('/meetings/registerFavorite/', '\App\Http\Controllers\Api\MeetingsController@registerFavorite'); -Route::get('/meetings/list/', '\App\Http\Controllers\Api\MeetingsController@list'); -Route::get('/meetings/listOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfApprovalOfChild'); -Route::get('/meetings/listOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfNonApprovalOfChild'); -Route::get('/meetings/listOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfCompleteOfFather'); -Route::get('/meetings/listOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfIncompleteOfFather'); -Route::get('/meetings/listOfFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfFavoriteOfFather'); -Route::get('/meetings/listOfNonFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfNonFavoriteOfFather'); -Route::get('/meetings/searchOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfApprovalOfChild'); -Route::get('/meetings/searchOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfNonApprovalOfChild'); -Route::get('/meetings/searchOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfCompleteOfFather'); -Route::get('/meetings/searchOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfIncompleteOfFather'); -Route::get('/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); -Route::delete('/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); -Route::delete('/meetings/deleteRelationFather/{father_id}', '\App\Http\Controllers\Api\MeetingsController@deleteRelationFather'); - -// MeetingImagesController -Route::post('/meeting-images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); -Route::delete('/meeting-images/deleteRelationMeeting/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@deleteRelationMeeting'); - -// MeetingApprovalsController -// Route::post('/meeting-approvals/register/', '\App\Http\Controllers\Api\MeetingApprovalsController@register'); -// Route::post('/meeting-approvals/registerOfApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerOfApproval'); -// Route::post('/meeting-approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting'); -Route::get('/meeting-approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel'); -Route::get('/meeting-approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel'); -Route::delete('/meeting-approvals/deleteRelationMeeting/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@deleteRelationMeeting'); -Route::delete('/meeting-approvals/deleteRelationChild/{child_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@deleteRelationChild'); +//// children +Route::get('/children/fathers/listOfChild/', '\App\Http\Controllers\Api\FathersController@listOfChild'); +Route::get('/children/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail'); // ChildrenController -// Route::post('/children/login/', '\App\Http\Controllers\Api\ChildrenController@login'); +//// 不明 // Route::post('/children/registerTemporary/', '\App\Http\Controllers\Api\ChildrenController@registerTemporary'); // Route::post('/children/registerMain/', '\App\Http\Controllers\Api\ChildrenController@registerMain'); -// Route::post('/children/checkTel/', '\App\Http\Controllers\Api\ChildrenController@checkTel'); -Route::get('/children/list/', '\App\Http\Controllers\Api\ChildrenController@list'); -Route::get('/children/listOfFather/', '\App\Http\Controllers\Api\ChildrenController@listOfFather'); -Route::get('/children/listOfMeeting/', '\App\Http\Controllers\Api\ChildrenController@listOfMeeting'); -// Route::post('/children/listOfMeetingNotifyUnapprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyUnapprovel'); -// Route::post('/children/listOfMeetingNotifyApprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyApprovel'); +// Route::post('/children/requestPassword/', '\App\Http\Controllers\Api\ChildrenController@requestPassword'); +// Route::post('/children/login/', '\App\Http\Controllers\Api\ChildrenController@login'); + +//// fathers +Route::get('/fathers/children/listOfFather/', '\App\Http\Controllers\Api\ChildrenController@listOfFather'); +Route::get('/fathers/children/listOfMeeting/', '\App\Http\Controllers\Api\ChildrenController@listOfMeeting'); +Route::post('/fathers/children/listOfMeetingNotifyUnapprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyUnapprovel'); +Route::post('/fathers/children/listOfMeetingNotifyApprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyApprovel'); +Route::get('/fathers/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail'); + +//// children Route::get('/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail'); -// Route::put('/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage'); -// Route::put('/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile'); -// Route::put('/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword'); -Route::delete('/children/delete/{child_id}', '\App\Http\Controllers\Api\ChildrenController@delete'); +Route::put('/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage'); +Route::put('/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile'); +Route::put('/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword'); +Route::delete('/children/withdrawal/', '\App\Http\Controllers\Api\ChildrenController@withdrawal'); + +// MeetingsController +//// admin +Route::get('/admin/meetings/list/', '\App\Http\Controllers\Api\MeetingsController@list'); +Route::delete('/admin/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); + +//// fathers +Route::post('/fathers/meetings/register/', '\App\Http\Controllers\Api\MeetingsController@register'); +Route::post('/fathers/meetings/registerFavorite/', '\App\Http\Controllers\Api\MeetingsController@registerFavorite'); +Route::get('/fathers/meetings/listOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfCompleteOfFather'); +Route::get('/fathers/meetings/listOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfIncompleteOfFather'); +Route::get('/fathers/meetings/listOfFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfFavoriteOfFather'); +Route::get('/fathers/meetings/listOfNonFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfNonFavoriteOfFather'); +Route::get('/fathers/meetings/searchOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfCompleteOfFather'); +Route::get('/fathers/meetings/searchOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfIncompleteOfFather'); +Route::get('/fathers/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); +Route::delete('/fathers/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); + +//// children +Route::get('/children/meetings/listOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfApprovalOfChild'); +Route::get('/children/meetings/listOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfNonApprovalOfChild'); +Route::get('/children/meetings/searchOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfApprovalOfChild'); +Route::get('/children/meetings/searchOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfNonApprovalOfChild'); +Route::get('/children/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); + +// MeetingImagesController +//// admin +Route::post('/admin/meeting-images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); +Route::delete('/admin/meeting-images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete'); + +//// fathers +Route::post('/fathers/meeting-images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); +Route::delete('/fathers/meeting-images/deleteRelationMeeting/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@deleteRelationMeeting'); + + +// MeetingApprovalsController +//// fathers +Route::post('/fathers/meeting-approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting'); +Route::get('/fathers/meeting-approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel'); +Route::get('/fathers/meeting-approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel'); + +//// children +Route::post('/children/meeting-approvals/registerOfApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerOfApproval'); // FatherRelationsController -Route::post('/father-relations/register/', '\App\Http\Controllers\Api\FatherRelationsController@register'); -Route::put('/father-relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate'); -Route::delete('/father-relations/deleteRelationFather/{father_id}', '\App\Http\Controllers\Api\FatherRelationsController@deleteRelationFather'); -Route::delete('/father-relations/deleteRelationChild/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@deleteRelationChild'); - -// LoginLimitsController -Route::post('/login-limits/countFailure/', '\App\Http\Controllers\Api\LoginLimitsController@countFailure'); -Route::delete('/login-limits/delete/', '\App\Http\Controllers\Api\LoginLimitsController@delete'); - -// ContactsController -Route::post('/contacts/register/', '\App\Http\Controllers\Api\ContactsController@register'); +//// fathers +Route::put('/fathers/father-relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate'); From 30d47f5b6c5a1922d7e2f213336ca2841c08dd5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Thu, 7 Oct 2021 13:51:53 +0900 Subject: [PATCH 2/8] =?UTF-8?q?michiaki=E3=81=95=E3=82=93=E3=81=AE?= =?UTF-8?q?=E3=82=A2=E3=83=89=E3=83=90=E3=82=A4=E3=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/ChildrenController.php | 112 ++--- .../Controllers/Api/FathersController.php | 84 ++-- .../Api/MeetingApprovalsController.php | 66 ++- .../Api/MeetingImagesController.php | 22 +- .../Controllers/Api/MeetingsController.php | 382 ++++++++++-------- 5 files changed, 367 insertions(+), 299 deletions(-) diff --git a/backend/app/Http/Controllers/Api/ChildrenController.php b/backend/app/Http/Controllers/Api/ChildrenController.php index 8fb239a9..0128b556 100644 --- a/backend/app/Http/Controllers/Api/ChildrenController.php +++ b/backend/app/Http/Controllers/Api/ChildrenController.php @@ -18,43 +18,47 @@ class ChildrenController extends Controller { public function requestPassword () {} public function list () { - // 親一覧の取得に成功 - if ($result = Child::orderBy('created_at', 'desc')->get()->toArray()) { - return ['status_code' => 200, 'params' => $result]; + if (null === ($result = Child::orderBy('created_at', 'desc')->get())) { + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親一覧の取得に失敗 - return ['status_code' => 400]; + // 親一覧の取得に成功 + return ['status_code' => 200, 'params' => $result]; } public function listOfFather (Request $r) { $result = []; $child_select = ['id', 'image', 'last_name', 'first_name']; - if ($list = FatherRelation::where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $l) { - $result[] = Child::select($child_select)->find($l['father_id']); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = FatherRelation::select('father_id')->where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get())) { + return ['status_code' => 400]; } - return ['status_code' => 400]; + foreach ($list as $l) { + if (null === ($result[] = Child::select($child_select)->find($l->father_id))) { + return ['status_code' => 400]; + } + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfMeeting (Request $r) { $result = []; $child_select = ['id', 'image', 'last_name', 'first_name']; - if ($list = MeetingApprovals::where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $l) { - $result[] = Child::select($child_select)->find($l['id']); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = MeetingApprovals::select('child_id')->where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get())) { + return ['status_code' => 400]; } - return ['status_code' => 400]; + foreach ($list as $l) { + if (null === ($result[] = Child::select($child_select)->find($l->child_id))) { + return ['status_code' => 400]; + } + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfMeetingNotifyUnapprovel (Request $r) { @@ -66,16 +70,18 @@ class ChildrenController extends Controller { $child_select = ['id', 'image', 'last_name', 'first_name', 'tel']; $meeting_approvals_select = ['approval_at']; - if ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = Child::select($child_select)->where('id', $l['child_id'])->get(); - $result[$i]['meeting_approval'] = $l['approval_at']; - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get())) { + return ['status_code' => 400]; } - return ['status_code' => 400]; + foreach ($list as $i => $l) { + if (null === ($result[] = Child::select($child_select)->where('id', $l->child_id)->get())) { + return ['status_code' => 400]; + } + $result[$i]['meeting_approval'] = $l->approval_at; + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfMeetingNotifyApprovel (Request $r) { @@ -87,16 +93,18 @@ class ChildrenController extends Controller { $child_select = ['id', 'image', 'last_name', 'first_name', 'tel']; $meeting_approvals_select = ['approval_at']; - if ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = Child::select($child_select)->where('id', $l['child_id'])->get(); - $result[$i]['meeting_approval'] = $l['approval_at']; - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get())) { + return ['status_code' => 400]; } - return ['status_code' => 400]; + foreach ($list as $i => $l) { + if (null === ($result[] = Child::select($child_select)->where('id', $l->child_id)->get())) { + return ['status_code' => 400]; + } + $result[$i]['meeting_approval'] = $l->approval_at; + } + + return ['status_code' => 200, 'params' => $result]; } public function detail (Request $r, $child_id) { @@ -105,19 +113,22 @@ class ChildrenController extends Controller { $father_relation_select = ['hire_at']; // 親詳細の取得に成功 - if ($list = Child::where('id', $child_id)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = Child::select($child_select)->find($l['id']); - if (isset($r->father_id)) { - $result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Child::select('id')->where('id', $child_id)->orderBy('created_at', 'desc')->get())) { + return ['status_code' => 400]; } - // 親詳細の取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + if (null === ($result[] = Child::select($child_select)->find($l->id))) { + return ['status_code' => 400]; + } + if (isset($r->father_id)) { + if (null === ($result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function updateImage (Request $r, $child_id) { @@ -208,11 +219,14 @@ class ChildrenController extends Controller { public function withdrawal ($child_id) { // 削除成功 - if (Child::where('id', $child_id)->delete()) { - return ['status_code' => 200]; + try { + Child::where('id', $child_id)->delete(); + } catch (\Throwable $e) { + Log::critical($e->getMessage()); + return ['status_code' => 400]; } // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200]; } } diff --git a/backend/app/Http/Controllers/Api/FathersController.php b/backend/app/Http/Controllers/Api/FathersController.php index 96009692..013dadc5 100644 --- a/backend/app/Http/Controllers/Api/FathersController.php +++ b/backend/app/Http/Controllers/Api/FathersController.php @@ -20,49 +20,51 @@ class FathersController extends Controller { $father_select = ['id', 'company', 'image']; $father_relation_select = ['created_at']; - // 親一覧の取得に成功 - if ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l['id'])->first(); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get())) { + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親一覧の取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l->id)->first())) { + return ['status_code' => 400]; + } + } + + // 親一覧の取得に成功 + return ['status_code' => 200, 'params' => $result]; } public function listOfChild (Request $r) { $result = []; $father_select = ['id', 'company', 'image']; - // 親一覧の取得に成功 - if ($list = FatherRelation::where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get()->toArray()) { - $result = []; - - foreach ($list as $l) { - $result[] = Father::select($father_select)->find($l['father_id']); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = FatherRelation::select('father_id')->where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get())) { + // 親一覧の取得に失敗 + return ['status_code' => 400]; } - // 親一覧の取得に失敗 - return ['status_code' => 400]; + foreach ($list as $l) { + if (null === ($result[] = Father::select($father_select)->find($l->father_id))) { + return ['status_code' => 400]; + } + } + + // 親一覧の取得に成功 + return ['status_code' => 200, 'params' => $result]; } public function detail ($father_id) { $father_select = ['id', 'email', 'company', 'image', 'tel']; - // 親詳細の取得に成功 - if ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray()) { - return ['status_code' => 200, 'params' => $result]; + if (null === ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get())) { + // 親詳細の取得に失敗 + return ['status_code' => 400]; } - // 親詳細の取得に失敗 - return ['status_code' => 400]; + // 親詳細の取得に成功 + return ['status_code' => 200, 'params' => $result]; } public function updateImage (Request $r, $father_id) { @@ -152,22 +154,28 @@ class FathersController extends Controller { } public function withdrawal ($father_id) { - // 成功 - if (Father::where('id', $father_id)->delete()) { - return ['status_code' => 200, 'success_messages' => ['親の削除に成功しました。']]; + try { + Father::where('id', $father_id)->delete(); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; } - - // 失敗 - return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; + + // 成功 + return ['status_code' => 200, 'success_messages' => ['親の削除に成功しました。']]; } public function delete ($meeting_id) { - // 成功 - if (Meeting::where('id', $meeting_id)->delete()) { - return ['status_code' => 200, 'success_messages' => ['ミーティングを削除に成功しました。']]; + try { + Meeting::where('id', $meeting_id)->delete(); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['ミーティングの削除に失敗しました。']]; } - - // 失敗 - return ['status_code' => 400, 'error_messages' => ['ミーティングの削除に失敗しました。']]; + + // 成功 + return ['status_code' => 200, 'success_messages' => ['ミーティングを削除に成功しました。']]; } } diff --git a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php index d124dfe7..2ee1bfc4 100644 --- a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php +++ b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php @@ -48,20 +48,18 @@ class MeetingApprovalsController extends Controller { $meeting_approvals_select = ['id', 'child_id', 'approval_at']; $child_select = ['id', 'image', 'last_name', 'first_name']; - // meeting_idでミーティングの許可があれば - if ($params = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()) { - // 子を付いてみて。child_idがなければ、すぐ400になります。 - foreach ($params as $p) { - if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { - return ['status' => 400]; - } - } - - return ['status' => 200, 'params' => $params]; + if (null === ($params = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get())) { + // エラーの場合 + return ['status' => 400]; } - // エラーの場合 - return ['status' => 400]; + foreach ($params as $p) { + if (null === ($p->child_id = Child::select($child_select)->where('id', $p->child_id)->first())) { + return ['status' => 400]; + } + } + + return ['status' => 200, 'params' => $params]; } public function listChildrenOfUnapprovel (Request $r) { @@ -72,20 +70,18 @@ class MeetingApprovalsController extends Controller { $meeting_select = ['id', 'child_id', 'approval_at']; $child_select = ['id', 'image', 'last_name', 'first_name']; - // meeting_idでミーティングの許可がなければ - if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()) { - // 子を付いてみて。child_idがなければ、すぐ400になります。 - foreach ($params as $p) { - if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) { - return ['status' => 400]; - } - } - - return ['status' => 200, 'params' => $params]; + if (null === ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get())) { + // エラーの場合 + return ['status' => 400]; } - // エラーの場合 - return ['status' => 400]; + foreach ($params as $p) { + if (null === ($p->child_id = Child::select($child_select)->where('id', $p->child_id)->first())) { + return ['status' => 400]; + } + } + + return ['status' => 200, 'params' => $params]; } public function deleteRelationMeeting ($meeting_id) { @@ -93,13 +89,14 @@ class MeetingApprovalsController extends Controller { return ['status_code' => 400]; } - // 削除成功 - if (MeetingApprovals::where('meeting_id', $meeting_id)->delete()) { - return ['status_code' => 200]; + try { + MeetingApprovals::where('meeting_id', $meeting_id)->delete(); + } catch (\Throwable $e) { + Log::critical($e->getMessage()); + return ['status_code' => 400]; } - // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200]; } public function deleteRelationChild ($child_id) { @@ -107,12 +104,13 @@ class MeetingApprovalsController extends Controller { return ['status_code' => 400]; } - // 削除成功 - if (MeetingApprovals::where('child_id', $child_id)->delete()) { - return ['status_code' => 200]; + try { + MeetingApprovals::where('child_id', $child_id)->delete(); + } catch (\Throwable $e) { + Log::critical($e->getMessage()); + return ['status_code' => 400]; } - // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200]; } } diff --git a/backend/app/Http/Controllers/Api/MeetingImagesController.php b/backend/app/Http/Controllers/Api/MeetingImagesController.php index 007a2ccc..c2e32f7c 100644 --- a/backend/app/Http/Controllers/Api/MeetingImagesController.php +++ b/backend/app/Http/Controllers/Api/MeetingImagesController.php @@ -42,23 +42,15 @@ class MeetingImagesController extends Controller { return ['status_code' => 200]; } - public function delete ($meeting_id) { - // 削除成功 - if (MeetingImage::where('meeting_id', $meeting_id)->delete()) { - return ['status_code' => 200]; - } - - // 削除失敗 - return ['status_code' => 400]; - } - public function deleteRelationMeeting ($meeting_id) { - // 削除成功 - if (MeetingImage::where('meeting_id', $meeting_id)->delete()) { - return ['status_code' => 200]; + try { + MeetingImage::where('meeting_id', $meeting_id)->delete(); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400]; } - // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200]; } } diff --git a/backend/app/Http/Controllers/Api/MeetingsController.php b/backend/app/Http/Controllers/Api/MeetingsController.php index 60bda358..1869e493 100644 --- a/backend/app/Http/Controllers/Api/MeetingsController.php +++ b/backend/app/Http/Controllers/Api/MeetingsController.php @@ -55,11 +55,15 @@ class MeetingsController extends Controller { $update = ['is_favorite' => $r->is_favorite]; - if (Meeting::where('id', $r->meeting_id)->update($update)) { - return ['status_code' => 200]; + try { + Meeting::where('id', $r->meeting_id)->update($update); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400]; } - return ['status_code' => 400]; + return ['status_code' => 200]; } public function list () { @@ -71,19 +75,24 @@ class MeetingsController extends Controller { $meeting_approvals_select = ['approval_at']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->orderBy('created_at', 'desc')->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('approval_at', 'desc')->get(); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->orderBy('created_at', 'desc')->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['fathers'] = Father::select($father_select)->where('id', $l->father_id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('approval_at', 'desc')->get())) { + return ['status_code' => 400]; + } + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfApprovalOfChild (Request $r) { @@ -98,23 +107,30 @@ class MeetingsController extends Controller { $meeting_approvals_select = ['approval_at']; // 取得に成功 - if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNotNull('approval_at')->orderBy('updated_at', 'desc')->get()) { - foreach ($approval as $a) { - if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get(); - } + if (null === ($approval = MeetingApprovals::select('meeting_id')->where('child_id', $r->child_id)->whereNotNull('approval_at')->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; + } - return ['status_code' => 200, 'params' => $result]; + foreach ($approval as $a) { + if (null === ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get())) { + return ['status_code' => 400]; + } + + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['fathers'] = Father::select($father_select)->where('id', $l->father_id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l->id)->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; } } } - // 取得に失敗 - return ['status_code' => 400]; + return ['status_code' => 200, 'params' => $result]; } public function listOfNonApprovalOfChild (Request $r) { @@ -129,23 +145,30 @@ class MeetingsController extends Controller { $meeting_approvals_select = ['approval_at']; // 取得に成功 - if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNull('approval_at')->orderBy('approval_at', 'asc')->get()) { - foreach ($approval as $a) { - if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('approval_at', 'asc')->get(); - } + if (null === ($approval = MeetingApprovals::select('meeting_id')->where('child_id', $r->child_id)->whereNull('approval_at')->orderBy('approval_at', 'asc')->get())) { + return ['status_code' => 400]; + } - return ['status_code' => 200, 'params' => $result]; + foreach ($approval as $a) { + if (null === ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get())) { + return ['status_code' => 400]; + } + + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['fathers'] = Father::select($father_select)->where('id', $l->father_id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l->id)->orderBy('approval_at', 'asc')->get())) { + return ['status_code' => 400]; } } } - // 取得に失敗 - return ['status_code' => 400]; + return ['status_code' => 200, 'params' => $result]; } public function listOfCompleteOfFather (Request $r) { @@ -159,25 +182,27 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get(); - if (count($result[$i]['approvals']) == 0) { - unset($result[$i]); - continue; - } - - foreach ($result[$i]['approvals'] as $ii => $ra) { - $result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first(); - } + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get())) { + return ['status_code' => 400]; + } + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l->id)->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; + } + if (count($result[$i]['approvals']) == 0) { + unset($result[$i]); + continue; } - return ['status_code' => 200, 'params' => $result]; + foreach ($result[$i]['approvals'] as $ii => $ra) { + if (null === ($result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } } - // 取得に失敗 - return ['status_code' => 400]; + return ['status_code' => 200, 'params' => $result]; } public function listOfIncompleteOfFather (Request $r) { @@ -191,25 +216,28 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get(); - if (count($result[$i]['approvals']) > 1) { - unset($result[$i]); - continue; - } - - foreach ($result[$i]['approvals'] as $ii => $ra) { - $result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l->id)->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; + } + if (count($result[$i]['approvals']) > 1) { + unset($result[$i]); + continue; + } + + foreach ($result[$i]['approvals'] as $ii => $ra) { + if (null === ($result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfFavoriteofFather (Request $r) { @@ -223,21 +251,24 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 1)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get(); - - foreach ($result[$i]['approvals'] as $ii => $ra) { - $result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 1)->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['approvals'] as $ii => $ra) { + if (null === ($result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function listOfNonFavoriteofFather (Request $r) { @@ -251,21 +282,24 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 0)->get()->toArray()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get(); - - foreach ($result[$i]['approvals'] as $ii => $ra) { - $result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 0)->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('updated_at', 'desc')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['approvals'] as $ii => $ra) { + if (null === ($result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function searchOfApprovalOfChild (Request $r) { @@ -279,18 +313,21 @@ class MeetingsController extends Controller { $meeting_approvals_select = ['approval_at as date']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first(); - $result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNotNull('approval_at')->get(); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['father'] = Father::select($father_select)->where('id', $l->father_id)->first())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNotNull('approval_at')->get())) { + return ['status_code' => 400]; + } + } + + return ['status_code' => 200, 'params' => $result]; } public function searchOfNonApprovalOfChild (Request $r) { @@ -304,18 +341,21 @@ class MeetingsController extends Controller { $meeting_approvals_select = ['approval_at as date']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first(); - $result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNull('approval_at')->get(); - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['father'] = Father::select($father_select)->where('id', $l->father_id)->first())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNull('approval_at')->get())) { + return ['status_code' => 400]; + } + } + + return ['status_code' => 200, 'params' => $result]; } public function searchOfCompleteofFather (Request $r) { @@ -330,22 +370,27 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNull('approval_at')->get(); - - foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { - $result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null == ($result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null == ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->whereNull('approval_at')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { + if (null == ($result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function searchOfIncompleteofFather (Request $r) { @@ -360,22 +405,27 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get(); - - foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { - $result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->whereNotNull('approval_at')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { + if (null === ($result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function detail (Request $r, $meeting_id) { @@ -390,31 +440,37 @@ class MeetingsController extends Controller { $child_select = ['image']; // 取得に成功 - if ($list = Meeting::select($meeting_select)->where('id', $meeting_id)->where('father_id', $r->father_id)->get()) { - foreach ($list as $i => $l) { - $result[] = $l; - $result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get(); - $result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get(); - - foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { - $result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first(); - } - } - - return ['status_code' => 200, 'params' => $result]; + if (null === ($list = Meeting::select($meeting_select)->where('id', $meeting_id)->where('father_id', $r->father_id)->get())) { + return ['status_code' => 400]; } - // 取得に失敗 - return ['status_code' => 400]; + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + return ['status_code' => 400]; + } + if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->whereNotNull('approval_at')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { + if (null === ($result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; } public function delete ($meeting_id) { - // 削除成功 - if (Meetings::where('meeting_id', $meeting_id)->delete()) { - return ['status_code' => 200]; + try { + Meetings::where('meeting_id', $meeting_id)->delete(); + } catch (\Throwable $e) { + Log::critical($e->getMessage()); + return ['status_code' => 400]; } - // 削除失敗 - return ['status_code' => 400]; + return ['status_code' => 200]; } } From 3b9a9e070cb01c4a15849d3926b8fb44b56f09e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Thu, 14 Oct 2021 13:19:45 +0900 Subject: [PATCH 3/8] =?UTF-8?q?DB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/database/factories/ChildFactory.php | 1 - backend/database/factories/FatherFactory.php | 1 - .../migrations/2021_08_12_054526_create_fathers_table.php | 3 +-- .../migrations/2021_08_13_042143_create_children_table.php | 1 - 4 files changed, 1 insertion(+), 5 deletions(-) diff --git a/backend/database/factories/ChildFactory.php b/backend/database/factories/ChildFactory.php index 67cd72ac..346eb6e2 100644 --- a/backend/database/factories/ChildFactory.php +++ b/backend/database/factories/ChildFactory.php @@ -31,7 +31,6 @@ class ChildFactory extends Factory 'identity' => $this->faker->text(20), 'email' => $this->faker->email, 'tel' => $tel[rand(0, 2)], - 'tel_verified_at' => $this->faker->dateTime, 'password' => $this->faker->password, 'last_name' => $this->faker->lastName, 'first_name' => $this->faker->firstName, diff --git a/backend/database/factories/FatherFactory.php b/backend/database/factories/FatherFactory.php index f645ffe1..2571794f 100644 --- a/backend/database/factories/FatherFactory.php +++ b/backend/database/factories/FatherFactory.php @@ -29,7 +29,6 @@ class FatherFactory extends Factory return [ 'email' => $this->faker->email, - 'email_verified_at' => $this->faker->dateTime, 'password' => $this->faker->password, 'company' => $this->faker->company, 'image' => $this->faker->imageUrl, diff --git a/backend/database/migrations/2021_08_12_054526_create_fathers_table.php b/backend/database/migrations/2021_08_12_054526_create_fathers_table.php index ecbc9322..86839a06 100644 --- a/backend/database/migrations/2021_08_12_054526_create_fathers_table.php +++ b/backend/database/migrations/2021_08_12_054526_create_fathers_table.php @@ -16,9 +16,8 @@ class CreateFathersTable extends Migration Schema::create('fathers', function (Blueprint $table) { $table->id(); $table->string('email', 255)->unique(); - $table->dateTime('email_verified_at'); $table->string('password', 72); - $table->string('company', 100)->nullable(); + $table->string('company', 100); $table->string('image', 100)->nullable(); $table->string('profile', 1000)->nullable(); $table->string('tel', 11)->unique(); diff --git a/backend/database/migrations/2021_08_13_042143_create_children_table.php b/backend/database/migrations/2021_08_13_042143_create_children_table.php index 63d153b5..dc2699cf 100644 --- a/backend/database/migrations/2021_08_13_042143_create_children_table.php +++ b/backend/database/migrations/2021_08_13_042143_create_children_table.php @@ -18,7 +18,6 @@ class CreateChildrenTable extends Migration $table->string('identity', 20); $table->string('email', 72)->unique(); $table->string('tel', 11)->unique(); - $table->dateTime('tel_verified_at'); $table->string('password', 255); $table->string('last_name', 100); $table->string('first_name', 100); From fe7da931f9c7836cbc8978c6c90b2acc84e28a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Fri, 15 Oct 2021 10:37:47 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=E7=AE=A1=E7=90=86=E8=80=85=E3=81=AEAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/Api/AdminController.php | 40 +++++ .../Controllers/Api/ChildrenController.php | 129 ++++++++++++++-- .../Api/FatherRelationsController.php | 1 + .../Controllers/Api/FathersController.php | 142 ++++++++++++++++-- .../Api/MeetingApprovalsController.php | 2 + .../Api/MeetingImagesController.php | 3 +- .../Controllers/Api/MeetingsController.php | 97 +++++++++--- backend/config/auth.php | 28 +++- backend/routes/api.php | 68 ++++++--- 9 files changed, 443 insertions(+), 67 deletions(-) create mode 100644 backend/app/Http/Controllers/Api/AdminController.php diff --git a/backend/app/Http/Controllers/Api/AdminController.php b/backend/app/Http/Controllers/Api/AdminController.php new file mode 100644 index 00000000..4cc436e6 --- /dev/null +++ b/backend/app/Http/Controllers/Api/AdminController.php @@ -0,0 +1,40 @@ +all(), [ + 'email' => 'required|max:255|email', + 'password' => 'required|min:8|max:72' + ]); + + if ($validate->fails()) { + // バリデーションエラー + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + // 存在しない場合 + if (null === ($admin = Admin::select('id')->where('email', $r->email)->where('password', $r->password)->first())) { + return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; + } + + // パスワードが異なる場合 + // if (!Hash::check($r->password, $admin->password)) { + if ($r->password != $admin->password) { + return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; + } + + // 親一覧の取得に成功 + session(['email' => $r->email, 'password' => $r->password]); + return ['status_code' => 200]; + } +} diff --git a/backend/app/Http/Controllers/Api/ChildrenController.php b/backend/app/Http/Controllers/Api/ChildrenController.php index 0128b556..1309e9a5 100644 --- a/backend/app/Http/Controllers/Api/ChildrenController.php +++ b/backend/app/Http/Controllers/Api/ChildrenController.php @@ -3,20 +3,129 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; +use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Facades\Hash; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\Child; use App\Models\FatherRelation; use App\Models\MeetingApprovals; +use App\Models\TelActivations; class ChildrenController extends Controller { public function login () {} - public function registerTemporary () {} - public function registerMain () {} + public function registerTemporary (Request $r) { + $validate = Validator::make($r->all(), [ + 'tel' => 'required|unique:children|max:11|numeric|starts_with:0' + ]); + if ($validate->fails()) { + // バリデーションエラー + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + if ($get = TelActivations::where('tel', $r->tel)->first()) { + // すでにDBに登録されている場合 + return ['status_code' => 400, 'error_messages' => ['既に使用されている電話番号です。']]; + } + + $chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; + $token = ''; + for ($i = 1; $i < 15; $i++) { + $token .= $chars[rand(0,35)]; + } + + $insert = ['tel' => $r->tel, 'token' => $token]; + + try { + Child::create($insert); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['登録に失敗しました。']]; + } + + // TODO: SMSの送信、SMSコントローラーを作る後でします。 + // try { + // $sms = new SMS; + // if (!$sms->send($r->tel, $token)) { + // // SMSの送信に失敗した場合 + // return ['status_code' => 401, 'error_messages' => ['SMSの送信に失敗しました。電話番号が正しいかご確認ください。']]; + // } + // } catch { + // // SMS APIのエラーの場合 + // Log::critical($e->getMessage()); + // return ['status_code' => 402, 'error_messages' => ['予期せぬエラーが発生しました。管理者へお問い合わせください。']]; + // } + + // 仮登録に成功した場合 + return ['status_code' => 200, 'params' => ['tel' => $r->tel]]; + } + + public function registerMain (Request $r) { + $validate = Validator::make($r->all(), [ + 'token' => 'required', + 'email' => 'required|unique:children|max:255|email', + 'password' => 'required|min:8|max:72|confirmed', + 'last_name' => 'required|max:100', + 'first_name' => 'required|max:100', + 'identity' => 'required|max:20|alpha_num', + 'image' => 'max:1024|mimes:jpg,png,gif', + 'company' => 'max:100', + ]); + if ($validate->fails()) { + // バリデーションエラー + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + $password = Hash::make($r->password); + + // 有効期限が切れている場合 + if ($get = TelActivations::where('token', $r->token)->first() && strtotime($get->ttl) > time()) { + return ['status_code' => 400, 'error_messages' => ['仮登録の有効期限が切れました。改めて親にお問い合わせいただき、再登録の手続きを行ってください。']]; + } + + $insert = [ + 'email' => $r->email, + 'tel' => $get->tel, + 'tel_verified_at' => date('Y-m-d H:i:s'), + 'password' => $password, + 'last_name' => $r->last_name, + 'first_name' => $r->first_name, + 'identity' => $r->identity, + 'image' => $r->image, + 'company' => $r->company, + ]; + + try { + Child::create($insert); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['登録に失敗しました。']]; + } + + // 本登録に成功 + return ['status_code' => 200, 'success_messages' => ['本登録に成功しました。'], 'params' => ['tel' => $r->tel, 'password' => $password]]; + } public function requestPassword () {} + public function search (Request $r) { + if (!isset($r->keyword)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + } + + if (null === ($result = Child::where('first_name', 'LIKE', '%'.$r->keyword.'%')->orWhere('last_name', 'LIKE', '%'.$r->keyword.'%')->orderBy('created_at', 'desc')->get())) { + // 親一覧の取得に失敗 + return ['status_code' => 400]; + } + + // 親一覧の取得に成功 + return ['status_code' => 200, 'params' => $result]; + } + public function list () { if (null === ($result = Child::orderBy('created_at', 'desc')->get())) { // 親一覧の取得に失敗 @@ -132,8 +241,8 @@ class ChildrenController extends Controller { } public function updateImage (Request $r, $child_id) { - if (!isset($r->image) || !isset($child_id)) { - return ['status_code' => 400, 'error_messages' => ['プロフィールの更新にしました。']]; + if (!isset($child_id)) { + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; } // バリデーションエラー @@ -148,16 +257,16 @@ class ChildrenController extends Controller { } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['プロフィールの更新に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; } // 成功 - return ['status_code' => 200, 'success_messages' => ['プロフィールの更新に成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['画像の更新に成功しました。']]; } public function updateProfile (Request $r, $child_id) { if (!isset($child_id)) { - return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['子の更新に失敗しました。']]; } // バリデーションエラー @@ -178,15 +287,15 @@ class ChildrenController extends Controller { } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['子の更新に失敗しました。']]; } // 成功 - return ['status_code' => 200, 'success_messages' => ['画像の更新に成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['子の更新に成功しました。']]; } public function updatePassword (Request $r, $child_id) { - if (!isset($r->image) || !isset($child_id)) { + if (!isset($child_id)) { return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; } diff --git a/backend/app/Http/Controllers/Api/FatherRelationsController.php b/backend/app/Http/Controllers/Api/FatherRelationsController.php index d38fa162..4bf46133 100644 --- a/backend/app/Http/Controllers/Api/FatherRelationsController.php +++ b/backend/app/Http/Controllers/Api/FatherRelationsController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\FatherRelation; diff --git a/backend/app/Http/Controllers/Api/FathersController.php b/backend/app/Http/Controllers/Api/FathersController.php index 013dadc5..77f363ad 100644 --- a/backend/app/Http/Controllers/Api/FathersController.php +++ b/backend/app/Http/Controllers/Api/FathersController.php @@ -3,17 +3,127 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; +use Illuminate\Support\Facades\Validator; +use Illuminate\Support\Facades\Hash; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\Father; use App\Models\FatherRelation; +use App\Models\EmailActivations; class FathersController extends Controller { public function login () {} - public function registerTemporary () {} + public function requestPassword () {} - public function registerMain () {} + public function registerTemporary (Request $r) { + $validate = Validator::make($r->all(), [ + 'email' => 'required|unique:father,email_activations|max:255|email|alpha_num' + ]); + + if ($validate->fails()) { + // バリデーションエラー + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + if ($get = Father::where('email', $r->email)->first()) { + // すでにDBに登録されている場合 + return ['status_code' => 400, 'error_messages' => ['入力したメールアドレスは既に登録済みです。同じメールアドレスは使用できません。']]; + } + else if ($get = EmailActivations::where('email', $r->email)->first()) { + // すでにDBに登録されている場合 + return ['status_code' => 400, 'error_messages' => ['入力したメールアドレスは既に登録済みです。同じメールアドレスは使用できません。']]; + } + else { + $chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; + $token = ''; + for ($i = 1; $i < 15; $i++) { + $token .= $chars[rand(0,35)]; + } + + $create = ['email' => $r->email, 'token' => $token, 'ttl' => date('Y-m-d H:i:s', time()+28800)]; + + try { + EmailActivations::create($create); + } catch (\Throwable $e) { + // 失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => '登録に失敗しました。']; + } + } + + // 仮登録に成功した場合 + return ['status_code' => 200, 'token' => $token, 'success_messages' => ['親の仮登録に成功しました。8時間以内に本登録を完了させてください。']]; + } + + public function registerMain (Request $r) { + $validate = Validator::make($r->all(), [ + 'token' => 'required', + 'password' => 'required|min:8|max:72|confirmed', + 'company' => 'max:100', + 'image' => 'max:1024|mimes:jpg,png,gif', + 'profile' => 'max:1000', + 'tel' => 'required|unique:children|max:11|numeric|starts_with:0', + ]); + if ($validate->fails()) { + // バリデーションエラー + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + $password = Hash::make($r->password); + + if ($get = EmailActivations::where('token', $r->token)->first() && strtotime($get->ttl) > time()) { + // 有効期限が切れている場合 + return['status_code' => 401, 'error_messages' => ['仮登録の有効期限が切れました。改めて管理者にお問い合わせいただき、再登録を行ってください。']]; + } + + try { + $create = [ + 'email' => $get->email, + 'email_verified_at' => date('Y-m-d H:i:s'), + 'password' => $password, + 'company' => $r->company, + 'image' => $r->image, + 'profile' => $r->profile, + 'tel' => $r->tel, + ]; + + Father::create($create); + } catch (\Throwable $e) { + // 本登録に失敗 + Log::critical($e->getMessage()); + return ['status_code' => 400, 'error_messages' => ['本登録に失敗しました。']]; + } + + // 本登録に成功 + return ['status_code' => 200]; + } + + public function search (Request $r) { + if (!isset($r->keyword)) { + return ['status_code' => 400]; + } + + $result = []; + $father_select = ['id', 'company', 'image']; + $father_relation_select = ['created_at']; + + if (null === ($list = Father::select($father_select)->where('company', 'LIKE', '%'.$r->keyword.'%')->orderBy('created_at', 'desc')->get())) { + // 親一覧の取得に失敗 + return ['status_code' => 400]; + } + + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l->id)->first())) { + return ['status_code' => 400]; + } + } + + // 親一覧の取得に成功 + return ['status_code' => 200, 'params' => $result]; + } public function list () { $result = []; @@ -56,11 +166,11 @@ class FathersController extends Controller { } public function detail ($father_id) { - $father_select = ['id', 'email', 'company', 'image', 'tel']; + $father_select = ['image', 'email', 'tel', 'profile', 'company']; - if (null === ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get())) { + if (null === ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray())) { // 親詳細の取得に失敗 - return ['status_code' => 400]; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // 親詳細の取得に成功 @@ -69,7 +179,7 @@ class FathersController extends Controller { public function updateImage (Request $r, $father_id) { if (!isset($r->image) || !isset($father_id)) { - return ['status_code' => 400, 'error_messages' => 'アップロードに失敗しました。']; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // バリデーションエラー @@ -85,16 +195,16 @@ class FathersController extends Controller { } catch (\Throwable $e) { // 親プロフィール画像のアップロードに失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['アップロードに失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // 親プロフィール画像のアップロードに成功 - return ['status_code' => 200, 'success_messages' => ['アップロードに成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['親の更新に成功しました。']]; } public function updateProfile (Request $r, $father_id) { if (!isset($father_id)) { - return ['status_code' => 400, 'error_messages' => 'プロフィールの更新に失敗しました。']; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // バリデーションエラー @@ -114,16 +224,16 @@ class FathersController extends Controller { } catch (\Throwable $e) { // 親プロフィール更新失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['画像の更新に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // 親プロフィール更新成功 - return ['status_code' => 200, 'success_messages' => ['画像の更新に成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['親の更新に成功しました。']]; } public function updatePassword (Request $r, $father_id) { if (!isset($r->image) || !isset($father_id)) { - return ['status_code' => 400, 'error_messages' => 'パスワードの更新に失敗しました。']; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // バリデーションエラー @@ -146,11 +256,11 @@ class FathersController extends Controller { } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['パスワードの更新に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['親の更新に失敗しました。']]; } // 成功 - return ['status_code' => 200, 'success_messages' => ['パスワードの更新に成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['親の更新に成功しました。']]; } public function withdrawal ($father_id) { @@ -172,10 +282,10 @@ class FathersController extends Controller { } catch (\Throwable $e) { // 失敗 Log::critical($e->getMessage()); - return ['status_code' => 400, 'error_messages' => ['ミーティングの削除に失敗しました。']]; + return ['status_code' => 400, 'error_messages' => ['親の削除に失敗しました。']]; } // 成功 - return ['status_code' => 200, 'success_messages' => ['ミーティングを削除に成功しました。']]; + return ['status_code' => 200, 'success_messages' => ['親の削除に成功しました。']]; } } diff --git a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php index 2ee1bfc4..b76c781c 100644 --- a/backend/app/Http/Controllers/Api/MeetingApprovalsController.php +++ b/backend/app/Http/Controllers/Api/MeetingApprovalsController.php @@ -4,10 +4,12 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\Child; use App\Models\Meeting; use App\Models\MeetingApprovals; +use App\Models\FatherRelation; class MeetingApprovalsController extends Controller { public function registerApproval (Request $r) { diff --git a/backend/app/Http/Controllers/Api/MeetingImagesController.php b/backend/app/Http/Controllers/Api/MeetingImagesController.php index c2e32f7c..ec43ced2 100644 --- a/backend/app/Http/Controllers/Api/MeetingImagesController.php +++ b/backend/app/Http/Controllers/Api/MeetingImagesController.php @@ -3,8 +3,9 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; -use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\MeetingImage; diff --git a/backend/app/Http/Controllers/Api/MeetingsController.php b/backend/app/Http/Controllers/Api/MeetingsController.php index 1869e493..d32cdc88 100644 --- a/backend/app/Http/Controllers/Api/MeetingsController.php +++ b/backend/app/Http/Controllers/Api/MeetingsController.php @@ -3,8 +3,9 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; -use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; +use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; use App\Models\Meeting; use App\Models\MeetingImage; @@ -66,13 +67,41 @@ class MeetingsController extends Controller { return ['status_code' => 200]; } - public function list () { - // TODO:adminsのみ + public function search (Request $r) { + if (!isset($r->keyword)) { + return ['status_code' => 400]; + } $result = []; - $meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at']; - $meeting_images_select = ['image']; - $father_select = ['image', 'company']; - $meeting_approvals_select = ['approval_at']; + $meeting_select = ['id', 'title', 'text', 'updated_at']; + $child_select = ['image']; + $meeting_approvals_select = ['child_id', 'approval_at']; + + // 取得に成功 + if (null === ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->orderBy('created_at', 'desc')->get())) { + return ['status_code' => 400]; + } + + foreach ($list as $i => $l) { + $result[] = $l; + if (null === ($result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('approval_at', 'desc')->get())) { + return ['status_code' => 400]; + } + + foreach ($result[$i]['approval'] as $j => $k) { + if (null === ($result[$i]['approval'][$j]['child'] = Child::select($child_select)->where('id', $k->child_id)->first())) { + return ['status_code' => 400]; + } + } + } + + return ['status_code' => 200, 'params' => $result]; + } + + public function list () { + $result = []; + $meeting_select = ['id', 'title', 'text', 'updated_at']; + $child_select = ['image']; + $meeting_approvals_select = ['child_id', 'approval_at']; // 取得に成功 if (null === ($list = Meeting::select($meeting_select)->orderBy('created_at', 'desc')->get())) { @@ -81,14 +110,14 @@ class MeetingsController extends Controller { foreach ($list as $i => $l) { $result[] = $l; - if (null === ($result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { + if (null === ($result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('approval_at', 'desc')->get())) { return ['status_code' => 400]; } - if (null === ($result[$i]['fathers'] = Father::select($father_select)->where('id', $l->father_id)->get())) { - return ['status_code' => 400]; - } - if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->orderBy('approval_at', 'desc')->get())) { - return ['status_code' => 400]; + + foreach ($result[$i]['approval'] as $j => $k) { + if (null === ($result[$i]['approval'][$j]['child'] = Child::select($child_select)->where('id', $k->child_id)->first())) { + return ['status_code' => 400]; + } } } @@ -429,7 +458,7 @@ class MeetingsController extends Controller { } public function detail (Request $r, $meeting_id) { - if (!isset($r->father_id)) { + if (!isset($meeting_id)) { return ['status_code' => 400]; } @@ -449,12 +478,12 @@ class MeetingsController extends Controller { if (null === ($result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l->id)->get())) { return ['status_code' => 400]; } - if (null === ($result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->whereNotNull('approval_at')->get())) { + if (null === ($result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l->id)->whereNotNull('approval_at')->get())) { return ['status_code' => 400]; } - foreach ($result[$i]['meeting_approvals'] as $ii => $ra) { - if (null === ($result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first())) { + foreach ($result[$i]['approval'] as $ii => $ra) { + if (null === ($result[$i]['approval'][$ii]['child'] = Child::select($child_select)->where('id', $ra->child_id)->first())) { return ['status_code' => 400]; } } @@ -463,6 +492,40 @@ class MeetingsController extends Controller { return ['status_code' => 200, 'params' => $result]; } + public function update (Request $r, $meeting_id) { + if (!isset($meeting_id)) { + return ['status_code' => 400, 'error_messages' => ['ミーティングの登録に失敗しました。']]; + } + + $validate = Validator::make($r->all(), [ + 'title' => 'required|max:100', + 'text' => 'required|max:2000', + 'memo' => 'max:2000', + 'pdf' => 'mimes:pdf' + ]); + + if ($validate->fails()) { + return ['status_code' => 422, 'error_messages' => $validate->errors()]; + } + + $update = [ + 'title' => $r->title, + 'text' => $r->text, + ]; + + if (isset($r->memo)) $update['memo'] = $r->memo; + if (isset($r->pdf)) $update['pdf'] = $r->pdf; + + try { + Meetings::where('meeting_id', $meeting_id)->update($update); + } catch (\Throwable $e) { + Log::critical($e->getMessage()); + return ['status_code' => 400]; + } + + return ['status_code' => 200]; + } + public function delete ($meeting_id) { try { Meetings::where('meeting_id', $meeting_id)->delete(); diff --git a/backend/config/auth.php b/backend/config/auth.php index ba1a4d8c..c49a4b65 100644 --- a/backend/config/auth.php +++ b/backend/config/auth.php @@ -14,8 +14,8 @@ return [ */ 'defaults' => [ - 'guard' => 'web', - 'passwords' => 'users', + 'guard' => 'fathers', + 'passwords' => 'fathers', ], /* @@ -36,9 +36,17 @@ return [ */ 'guards' => [ - 'web' => [ + 'admins' => [ 'driver' => 'session', - 'provider' => 'users', + 'provider' => 'admins', + ], + 'fathers' => [ + 'driver' => 'session', + 'provider' => 'fathers', + ], + 'children' => [ + 'driver' => 'session', + 'provider' => 'children', ], 'api' => [ @@ -66,6 +74,18 @@ return [ */ 'providers' => [ + 'admins' => [ + 'driver' => 'eloquent', + 'model' => App\Models\Admin::class, + ], + 'fathers' => [ + 'driver' => 'eloquent', + 'model' => App\Models\Father::class, + ], + 'children' => [ + 'driver' => 'eloquent', + 'model' => App\Models\Child::class, + ], 'users' => [ 'driver' => 'eloquent', 'model' => App\Models\User::class, diff --git a/backend/routes/api.php b/backend/routes/api.php index abb1adde..520b2e1f 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -14,19 +14,29 @@ use Illuminate\Support\Facades\Route; | */ +// AdminController +//// 不明 +Route::post('/admin/login', '\App\Http\Controllers\Api\AdminController@login')->name('login'); + // ContactsController //// 不明 -Route::post('/contacts/register/', '\App\Http\Controllers\Api\ContactsController@register'); +Route::post('/contacts/register', '\App\Http\Controllers\Api\ContactsController@register'); // FathersController //// 不明 -// Route::post('/fathers/registerMain/', '\App\Http\Controllers\Api\FathersController@registerMain'); +Route::post('/fathers/registerMain/', '\App\Http\Controllers\Api\FathersController@registerMain'); +Route::post('/fathers/requestPassword/', '\App\Http\Controllers\Api\FathersController@requestPassword'); // Route::post('/fathers/login/', '\App\Http\Controllers\Api\FathersController@login'); //// admin -Route::get('/admin/fathers/list/', '\App\Http\Controllers\Api\FathersController@list'); -Route::delete('/admin/fathers/delete/{father_id}', '\App\Http\Controllers\Api\FathersController@delete'); -// Route::post('/admin/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary'); +Route::get('/admin/fathers/list/', '\App\Http\Controllers\Api\FathersController@list')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/fathers/search', '\App\Http\Controllers\Api\FathersController@search')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail')->middleware(['auth:admins', 'throttle:10,10']); +Route::delete('/admin/fathers/delete/', '\App\Http\Controllers\Api\FathersController@withdrawal')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary')->middleware(['auth:admins', 'throttle:10,10']); //// fathers Route::put('/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage'); @@ -40,11 +50,20 @@ Route::get('/children/fathers/detail/{father_id}', '\App\Http\Controllers\Api\Fa // ChildrenController //// 不明 -// Route::post('/children/registerTemporary/', '\App\Http\Controllers\Api\ChildrenController@registerTemporary'); -// Route::post('/children/registerMain/', '\App\Http\Controllers\Api\ChildrenController@registerMain'); +Route::post('/children/registerTemporary/', '\App\Http\Controllers\Api\ChildrenController@registerTemporary'); +Route::post('/children/registerMain/', '\App\Http\Controllers\Api\ChildrenController@registerMain'); // Route::post('/children/requestPassword/', '\App\Http\Controllers\Api\ChildrenController@requestPassword'); // Route::post('/children/login/', '\App\Http\Controllers\Api\ChildrenController@login'); +//// admin +Route::get('/admin/children/list', '\App\Http\Controllers\Api\ChildrenController@list')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/children/search', '\App\Http\Controllers\Api\ChildrenController@search')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->middleware(['auth:admins', 'throttle:10,10']); +Route::get('/admin/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail')->middleware(['auth:admins', 'throttle:10,10']); +Route::delete('/admin/children/delete/{child_id}', '\App\Http\Controllers\Api\ChildrenController@withdrawal')->middleware(['auth:admins', 'throttle:10,10']); + //// fathers Route::get('/fathers/children/listOfFather/', '\App\Http\Controllers\Api\ChildrenController@listOfFather'); Route::get('/fathers/children/listOfMeeting/', '\App\Http\Controllers\Api\ChildrenController@listOfMeeting'); @@ -61,8 +80,11 @@ Route::delete('/children/withdrawal/', '\App\Http\Controllers\Api\ChildrenContro // MeetingsController //// admin -Route::get('/admin/meetings/list/', '\App\Http\Controllers\Api\MeetingsController@list'); -Route::delete('/admin/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); +Route::get('/admin/meetings/list', '\App\Http\Controllers\Api\MeetingsController@list')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/meetings/search', '\App\Http\Controllers\Api\MeetingsController@search')->middleware(['auth:admins', 'throttle:10,10']); +Route::get('/admin/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail')->middleware(['auth:admins', 'throttle:10,10']); +Route::put('/admin/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update')->middleware(['auth:admins', 'throttle:10,10']); +Route::delete('/admin/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete')->middleware(['auth:admins', 'throttle:10,10']); //// fathers Route::post('/fathers/meetings/register/', '\App\Http\Controllers\Api\MeetingsController@register'); @@ -74,6 +96,7 @@ Route::get('/fathers/meetings/listOfNonFavoriteOfFather/', '\App\Http\Controller Route::get('/fathers/meetings/searchOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfCompleteOfFather'); Route::get('/fathers/meetings/searchOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfIncompleteOfFather'); Route::get('/fathers/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); +Route::put('/fathers/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update'); Route::delete('/fathers/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); //// children @@ -85,23 +108,30 @@ Route::get('/children/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\ // MeetingImagesController //// admin -Route::post('/admin/meeting-images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); -Route::delete('/admin/meeting-images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete'); +Route::post('/admin/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register')->middleware(['auth:admins', 'throttle:10,10']); +Route::delete('/admin/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete')->middleware(['auth:admins', 'throttle:10,10']); //// fathers -Route::post('/fathers/meeting-images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); -Route::delete('/fathers/meeting-images/deleteRelationMeeting/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@deleteRelationMeeting'); - +Route::post('/fathers/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); +Route::delete('/fathers/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete'); // MeetingApprovalsController +//// admin +Route::post('/admin/meeting/approvals/register/', '\App\Http\Controllers\Api\MeetingApprovalsController@register')->middleware(['auth:admins', 'throttle:10,10']); +Route::delete('/admin/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete')->middleware(['auth:admins', 'throttle:10,10']); + //// fathers -Route::post('/fathers/meeting-approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting'); -Route::get('/fathers/meeting-approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel'); -Route::get('/fathers/meeting-approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel'); +// Route::post('/fathers/meeting/approvals/register/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@register'); +// Route::delete('/fathers/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete'); +Route::post('/fathers/meeting/approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting'); +Route::get('/fathers/meeting/approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel'); +Route::get('/fathers/meeting/approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel'); //// children -Route::post('/children/meeting-approvals/registerOfApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerOfApproval'); +Route::post('/children/meeting/approvals/registerApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerApproval'); // FatherRelationsController //// fathers -Route::put('/fathers/father-relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate'); +Route::post('/fathers/father/relations/register', '\App\Http\Controllers\Api\FatherRelationsController@register'); +Route::put('/fathers/father/relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate'); +Route::delete('/fathers/father/relations/deleteRelationChild/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@deleteRelationChild'); From 024a6f2a47b795da36f19f571c29ed4507b14902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Fri, 15 Oct 2021 15:49:43 +0900 Subject: [PATCH 5/8] =?UTF-8?q?adminAPI=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/Api/AdminController.php | 27 +++- backend/app/Http/Kernel.php | 3 + backend/app/Http/Middleware/AuthAdmin.php | 21 +++ backend/app/Http/Middleware/AuthChild.php | 21 +++ backend/app/Http/Middleware/AuthFather.php | 21 +++ backend/database/factories/AdminFactory.php | 3 +- backend/database/factories/ChildFactory.php | 3 +- backend/database/factories/FatherFactory.php | 3 +- .../database/seeders/AdminsTableSeeder.php | 1 + backend/routes/api.php | 150 +++++++++--------- 10 files changed, 169 insertions(+), 84 deletions(-) create mode 100644 backend/app/Http/Middleware/AuthAdmin.php create mode 100644 backend/app/Http/Middleware/AuthChild.php create mode 100644 backend/app/Http/Middleware/AuthFather.php diff --git a/backend/app/Http/Controllers/Api/AdminController.php b/backend/app/Http/Controllers/Api/AdminController.php index 4cc436e6..d9abffb1 100644 --- a/backend/app/Http/Controllers/Api/AdminController.php +++ b/backend/app/Http/Controllers/Api/AdminController.php @@ -12,9 +12,19 @@ use App\Models\LoginLimits; class AdminController extends Controller { public function login (Request $r) { + if (null === $r->server('HTTP_USER_AGENT')) { + return ['status_code' => 400, 'error_message' => ['不正なuser_agent。']]; + } + + if (null !== ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first())) { + if ($ll->fail_number >= 10) { + return ['status_code' => 400, 'error_message' => ['10回連続で失敗しましたので、10分、ログインロックになりました。']]; + } + } + $validate = Validator::make($r->all(), [ 'email' => 'required|max:255|email', - 'password' => 'required|min:8|max:72' + 'password' => 'required|min:8|max:72', ]); if ($validate->fails()) { @@ -23,18 +33,23 @@ class AdminController extends Controller { } // 存在しない場合 - if (null === ($admin = Admin::select('id')->where('email', $r->email)->where('password', $r->password)->first())) { - return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; + if (null === ($admin = Admin::select('id', 'email', 'password')->where('email', $r->email)->first())) { + return ['status_code' => 400, 'error_message' => ['このアカウントが存在しません。']]; } // パスワードが異なる場合 - // if (!Hash::check($r->password, $admin->password)) { - if ($r->password != $admin->password) { + if (!Hash::check($r->password, $admin->password)) { + if ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first()) { + LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => $ll->fail_number+1]); + } + else { + LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => 1]); + } return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; } // 親一覧の取得に成功 - session(['email' => $r->email, 'password' => $r->password]); + session(['email' => $admin->email]); return ['status_code' => 200]; } } diff --git a/backend/app/Http/Kernel.php b/backend/app/Http/Kernel.php index 30020a50..78c1eb1c 100644 --- a/backend/app/Http/Kernel.php +++ b/backend/app/Http/Kernel.php @@ -54,6 +54,9 @@ class Kernel extends HttpKernel */ protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.admins' => \App\Http\Middleware\AuthAdmin::class, + 'auth.children' => \App\Http\Middleware\AuthChild::class, + 'auth.fathers' => \App\Http\Middleware\AuthFather::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, diff --git a/backend/app/Http/Middleware/AuthAdmin.php b/backend/app/Http/Middleware/AuthAdmin.php new file mode 100644 index 00000000..dbcac856 --- /dev/null +++ b/backend/app/Http/Middleware/AuthAdmin.php @@ -0,0 +1,21 @@ +expectsJson()) { + return route('adminlogin'); + } + } +} diff --git a/backend/app/Http/Middleware/AuthChild.php b/backend/app/Http/Middleware/AuthChild.php new file mode 100644 index 00000000..d62b4046 --- /dev/null +++ b/backend/app/Http/Middleware/AuthChild.php @@ -0,0 +1,21 @@ +expectsJson()) { + return route('childrenlogin'); + } + } +} diff --git a/backend/app/Http/Middleware/AuthFather.php b/backend/app/Http/Middleware/AuthFather.php new file mode 100644 index 00000000..af9947b3 --- /dev/null +++ b/backend/app/Http/Middleware/AuthFather.php @@ -0,0 +1,21 @@ +expectsJson()) { + return route('fatherlogin'); + } + } +} diff --git a/backend/database/factories/AdminFactory.php b/backend/database/factories/AdminFactory.php index d2b89b4d..738dbfbb 100644 --- a/backend/database/factories/AdminFactory.php +++ b/backend/database/factories/AdminFactory.php @@ -3,6 +3,7 @@ namespace Database\Factories; use \App\Models\Admin; +use Illuminate\Support\Facades\Hash; use Illuminate\Database\Eloquent\Factories\Factory; class AdminFactory extends Factory @@ -23,7 +24,7 @@ class AdminFactory extends Factory { return [ 'email' => $this->faker->email, - 'password' => $this->faker->password, + 'password' => Hash::make('password'), 'created_at' => $this->faker->dateTime, 'updated_at' => $this->faker->dateTime, ]; diff --git a/backend/database/factories/ChildFactory.php b/backend/database/factories/ChildFactory.php index 346eb6e2..f4316a42 100644 --- a/backend/database/factories/ChildFactory.php +++ b/backend/database/factories/ChildFactory.php @@ -3,6 +3,7 @@ namespace Database\Factories; use App\Models\Child; +use Illuminate\Support\Facades\Hash; use Illuminate\Database\Eloquent\Factories\Factory; class ChildFactory extends Factory @@ -31,7 +32,7 @@ class ChildFactory extends Factory 'identity' => $this->faker->text(20), 'email' => $this->faker->email, 'tel' => $tel[rand(0, 2)], - 'password' => $this->faker->password, + 'password' => Hash::make('password'), 'last_name' => $this->faker->lastName, 'first_name' => $this->faker->firstName, 'image' => $this->faker->imageUrl, diff --git a/backend/database/factories/FatherFactory.php b/backend/database/factories/FatherFactory.php index 2571794f..9cf4e1aa 100644 --- a/backend/database/factories/FatherFactory.php +++ b/backend/database/factories/FatherFactory.php @@ -3,6 +3,7 @@ namespace Database\Factories; use App\Models\Father; +use Illuminate\Support\Facades\Hash; use Illuminate\Database\Eloquent\Factories\Factory; class FatherFactory extends Factory @@ -29,7 +30,7 @@ class FatherFactory extends Factory return [ 'email' => $this->faker->email, - 'password' => $this->faker->password, + 'password' => Hash::make('password'), 'company' => $this->faker->company, 'image' => $this->faker->imageUrl, 'profile' => $this->faker->realText(49), diff --git a/backend/database/seeders/AdminsTableSeeder.php b/backend/database/seeders/AdminsTableSeeder.php index f7f44217..d140b15b 100644 --- a/backend/database/seeders/AdminsTableSeeder.php +++ b/backend/database/seeders/AdminsTableSeeder.php @@ -15,5 +15,6 @@ class AdminsTableSeeder extends Seeder public function run() { \App\Models\Admin::factory()->count(10)->create(); + \App\Models\Admin::create(['email' => 'chankan77@gmail.com', 'password' => 'password']); } } diff --git a/backend/routes/api.php b/backend/routes/api.php index 520b2e1f..21da7a07 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -16,7 +16,7 @@ use Illuminate\Support\Facades\Route; // AdminController //// 不明 -Route::post('/admin/login', '\App\Http\Controllers\Api\AdminController@login')->name('login'); +Route::post('/admin/login', '\App\Http\Controllers\Api\AdminController@login')->name('adminlogin'); // ContactsController //// 不明 @@ -24,114 +24,114 @@ Route::post('/contacts/register', '\App\Http\Controllers\Api\ContactsController@ // FathersController //// 不明 -Route::post('/fathers/registerMain/', '\App\Http\Controllers\Api\FathersController@registerMain'); -Route::post('/fathers/requestPassword/', '\App\Http\Controllers\Api\FathersController@requestPassword'); -// Route::post('/fathers/login/', '\App\Http\Controllers\Api\FathersController@login'); +Route::post('/fathers/registerMain/', '\App\Http\Controllers\Api\FathersController@registerMain')->name('fatherregistermain'); +Route::post('/fathers/requestPassword/', '\App\Http\Controllers\Api\FathersController@requestPassword')->name('fatherrequestpassword'); +// Route::post('/fathers/login/', '\App\Http\Controllers\Api\FathersController@login')->name('fatherlogin'); //// admin -Route::get('/admin/fathers/list/', '\App\Http\Controllers\Api\FathersController@list')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/fathers/search', '\App\Http\Controllers\Api\FathersController@search')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword')->middleware(['auth:admins', 'throttle:10,10']); -Route::post('/admin/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail')->middleware(['auth:admins', 'throttle:10,10']); -Route::delete('/admin/fathers/delete/', '\App\Http\Controllers\Api\FathersController@withdrawal')->middleware(['auth:admins', 'throttle:10,10']); -Route::post('/admin/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary')->middleware(['auth:admins', 'throttle:10,10']); +Route::get('/admin/fathers/list/', '\App\Http\Controllers\Api\FathersController@list')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/fathers/search', '\App\Http\Controllers\Api\FathersController@search')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::post('/admin/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::delete('/admin/fathers/delete/', '\App\Http\Controllers\Api\FathersController@withdrawal')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::post('/admin/fathers/registerTemporary/', '\App\Http\Controllers\Api\FathersController@registerTemporary')->middleware(['auth.admins:admins', 'throttle:10,10']); //// fathers -Route::put('/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage'); -Route::put('/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile'); -Route::put('/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword'); -Route::delete('/fathers/withdrawal/', '\App\Http\Controllers\Api\FathersController@withdrawal'); +Route::put('/fathers/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::put('/fathers/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::put('/fathers/updatePassword/{father_id}', '\App\Http\Controllers\Api\FathersController@updatePassword')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::delete('/fathers/withdrawal/', '\App\Http\Controllers\Api\FathersController@withdrawal')->middleware(['auth.fathers:fathers', 'throttle:10,10']); //// children -Route::get('/children/fathers/listOfChild/', '\App\Http\Controllers\Api\FathersController@listOfChild'); -Route::get('/children/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail'); +Route::get('/children/fathers/listOfChild/', '\App\Http\Controllers\Api\FathersController@listOfChild')->middleware(['auth.children:children', 'throttle:10,10']); +Route::get('/children/fathers/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail')->middleware(['auth.children:children', 'throttle:10,10']); // ChildrenController //// 不明 -Route::post('/children/registerTemporary/', '\App\Http\Controllers\Api\ChildrenController@registerTemporary'); -Route::post('/children/registerMain/', '\App\Http\Controllers\Api\ChildrenController@registerMain'); -// Route::post('/children/requestPassword/', '\App\Http\Controllers\Api\ChildrenController@requestPassword'); -// Route::post('/children/login/', '\App\Http\Controllers\Api\ChildrenController@login'); +Route::post('/children/registerTemporary/', '\App\Http\Controllers\Api\ChildrenController@registerTemporary')->name('childrenregistertemporary'); +Route::post('/children/registerMain/', '\App\Http\Controllers\Api\ChildrenController@registerMain')->name('childrenregistermain'); +// Route::post('/children/requestPassword/', '\App\Http\Controllers\Api\ChildrenController@requestPassword')->name('childrenrequestpassword'); +// Route::post('/children/login/', '\App\Http\Controllers\Api\ChildrenController@login')->name('childrenlogin'); //// admin -Route::get('/admin/children/list', '\App\Http\Controllers\Api\ChildrenController@list')->middleware(['auth:admins', 'throttle:10,10']); -Route::post('/admin/children/search', '\App\Http\Controllers\Api\ChildrenController@search')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->middleware(['auth:admins', 'throttle:10,10']); -Route::get('/admin/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail')->middleware(['auth:admins', 'throttle:10,10']); -Route::delete('/admin/children/delete/{child_id}', '\App\Http\Controllers\Api\ChildrenController@withdrawal')->middleware(['auth:admins', 'throttle:10,10']); +Route::get('/admin/children/list', '\App\Http\Controllers\Api\ChildrenController@list')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::post('/admin/children/search', '\App\Http\Controllers\Api\ChildrenController@search')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::get('/admin/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::delete('/admin/children/delete/{child_id}', '\App\Http\Controllers\Api\ChildrenController@withdrawal')->middleware(['auth.admins:admins', 'throttle:10,10']); //// fathers -Route::get('/fathers/children/listOfFather/', '\App\Http\Controllers\Api\ChildrenController@listOfFather'); -Route::get('/fathers/children/listOfMeeting/', '\App\Http\Controllers\Api\ChildrenController@listOfMeeting'); -Route::post('/fathers/children/listOfMeetingNotifyUnapprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyUnapprovel'); -Route::post('/fathers/children/listOfMeetingNotifyApprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyApprovel'); -Route::get('/fathers/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail'); +Route::get('/fathers/children/listOfFather/', '\App\Http\Controllers\Api\ChildrenController@listOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/children/listOfMeeting/', '\App\Http\Controllers\Api\ChildrenController@listOfMeeting')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::post('/fathers/children/listOfMeetingNotifyUnapprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyUnapprovel')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::post('/fathers/children/listOfMeetingNotifyApprovel/', '\App\Http\Controllers\Api\ChildrenController@listOfMeetingNotifyApprovel')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail')->middleware(['auth.fathers:fathers', 'throttle:10,10']); //// children -Route::get('/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail'); -Route::put('/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage'); -Route::put('/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile'); -Route::put('/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword'); -Route::delete('/children/withdrawal/', '\App\Http\Controllers\Api\ChildrenController@withdrawal'); +Route::get('/children/detail/{child_id}', '\App\Http\Controllers\Api\ChildrenController@detail')->middleware(['auth.children:children', 'throttle:10,10']); +Route::put('/children/updateImage/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateImage')->middleware(['auth.children:children', 'throttle:10,10']); +Route::put('/children/updateProfile/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updateProfile')->middleware(['auth.children:children', 'throttle:10,10']); +Route::put('/children/updatePassword/{child_id}', '\App\Http\Controllers\Api\ChildrenController@updatePassword')->middleware(['auth.children:children', 'throttle:10,10']); +Route::delete('/children/withdrawal/', '\App\Http\Controllers\Api\ChildrenController@withdrawal')->middleware(['auth.children:children', 'throttle:10,10']); // MeetingsController //// admin -Route::get('/admin/meetings/list', '\App\Http\Controllers\Api\MeetingsController@list')->middleware(['auth:admins', 'throttle:10,10']); -Route::post('/admin/meetings/search', '\App\Http\Controllers\Api\MeetingsController@search')->middleware(['auth:admins', 'throttle:10,10']); -Route::get('/admin/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail')->middleware(['auth:admins', 'throttle:10,10']); -Route::put('/admin/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update')->middleware(['auth:admins', 'throttle:10,10']); -Route::delete('/admin/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete')->middleware(['auth:admins', 'throttle:10,10']); +Route::get('/admin/meetings/list', '\App\Http\Controllers\Api\MeetingsController@list')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::post('/admin/meetings/search', '\App\Http\Controllers\Api\MeetingsController@search')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::get('/admin/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::put('/admin/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::delete('/admin/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete')->middleware(['auth.admins:admins', 'throttle:10,10']); //// fathers -Route::post('/fathers/meetings/register/', '\App\Http\Controllers\Api\MeetingsController@register'); -Route::post('/fathers/meetings/registerFavorite/', '\App\Http\Controllers\Api\MeetingsController@registerFavorite'); -Route::get('/fathers/meetings/listOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfCompleteOfFather'); -Route::get('/fathers/meetings/listOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfIncompleteOfFather'); -Route::get('/fathers/meetings/listOfFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfFavoriteOfFather'); -Route::get('/fathers/meetings/listOfNonFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfNonFavoriteOfFather'); -Route::get('/fathers/meetings/searchOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfCompleteOfFather'); -Route::get('/fathers/meetings/searchOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfIncompleteOfFather'); -Route::get('/fathers/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); -Route::put('/fathers/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update'); -Route::delete('/fathers/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete'); +Route::post('/fathers/meetings/register/', '\App\Http\Controllers\Api\MeetingsController@register')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::post('/fathers/meetings/registerFavorite/', '\App\Http\Controllers\Api\MeetingsController@registerFavorite')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/listOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfCompleteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/listOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfIncompleteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/listOfFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfFavoriteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/listOfNonFavoriteOfFather/', '\App\Http\Controllers\Api\MeetingsController@listOfNonFavoriteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/searchOfCompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfCompleteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/searchOfIncompleteOfFather/', '\App\Http\Controllers\Api\MeetingsController@searchOfIncompleteOfFather')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::put('/fathers/meetings/update/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@update')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::delete('/fathers/meetings/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@delete')->middleware(['auth.fathers:fathers', 'throttle:10,10']); //// children -Route::get('/children/meetings/listOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfApprovalOfChild'); -Route::get('/children/meetings/listOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfNonApprovalOfChild'); -Route::get('/children/meetings/searchOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfApprovalOfChild'); -Route::get('/children/meetings/searchOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfNonApprovalOfChild'); -Route::get('/children/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail'); +Route::get('/children/meetings/listOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfApprovalOfChild')->middleware(['auth.children:children', 'throttle:10,10']); +Route::get('/children/meetings/listOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@listOfNonApprovalOfChild')->middleware(['auth.children:children', 'throttle:10,10']); +Route::get('/children/meetings/searchOfApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfApprovalOfChild')->middleware(['auth.children:children', 'throttle:10,10']); +Route::get('/children/meetings/searchOfNonApprovalOfChild/', '\App\Http\Controllers\Api\MeetingsController@searchOfNonApprovalOfChild')->middleware(['auth.children:children', 'throttle:10,10']); +Route::get('/children/meetings/detail/{meeting_id}', '\App\Http\Controllers\Api\MeetingsController@detail')->middleware(['auth.children:children', 'throttle:10,10']); // MeetingImagesController //// admin -Route::post('/admin/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register')->middleware(['auth:admins', 'throttle:10,10']); -Route::delete('/admin/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::delete('/admin/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete')->middleware(['auth.admins:admins', 'throttle:10,10']); //// fathers -Route::post('/fathers/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register'); -Route::delete('/fathers/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete'); +Route::post('/fathers/meeting/images/register/', '\App\Http\Controllers\Api\MeetingImagesController@register')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::delete('/fathers/meeting/images/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingImagesController@delete')->middleware(['auth.fathers:fathers', 'throttle:10,10']); // MeetingApprovalsController //// admin -Route::post('/admin/meeting/approvals/register/', '\App\Http\Controllers\Api\MeetingApprovalsController@register')->middleware(['auth:admins', 'throttle:10,10']); -Route::delete('/admin/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete')->middleware(['auth:admins', 'throttle:10,10']); +Route::post('/admin/meeting/approvals/register/', '\App\Http\Controllers\Api\MeetingApprovalsController@register')->middleware(['auth.admins:admins', 'throttle:10,10']); +Route::delete('/admin/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete')->middleware(['auth.admins:admins', 'throttle:10,10']); //// fathers -// Route::post('/fathers/meeting/approvals/register/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@register'); -// Route::delete('/fathers/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete'); -Route::post('/fathers/meeting/approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting'); -Route::get('/fathers/meeting/approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel'); -Route::get('/fathers/meeting/approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel'); +// Route::post('/fathers/meeting/approvals/register/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@register')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +// Route::delete('/fathers/meeting/approvals/delete/{meeting_id}', '\App\Http\Controllers\Api\MeetingApprovalsController@delete')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::post('/fathers/meeting/approvals/listChildrenOfMeeting/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfMeeting')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meeting/approvals/listChildrenOfApprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfApprovel')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::get('/fathers/meeting/approvals/listChildrenOfUnapprovel/', '\App\Http\Controllers\Api\MeetingApprovalsController@listChildrenOfUnapprovel')->middleware(['auth.fathers:fathers', 'throttle:10,10']); //// children -Route::post('/children/meeting/approvals/registerApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerApproval'); +Route::post('/children/meeting/approvals/registerApproval/', '\App\Http\Controllers\Api\MeetingApprovalsController@registerApproval')->middleware(['auth.children:children', 'throttle:10,10']); // FatherRelationsController //// fathers -Route::post('/fathers/father/relations/register', '\App\Http\Controllers\Api\FatherRelationsController@register'); -Route::put('/fathers/father/relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate'); -Route::delete('/fathers/father/relations/deleteRelationChild/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@deleteRelationChild'); +Route::post('/fathers/father/relations/register', '\App\Http\Controllers\Api\FatherRelationsController@register')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::put('/fathers/father/relations/updateHireDate/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@updateHireDate')->middleware(['auth.fathers:fathers', 'throttle:10,10']); +Route::delete('/fathers/father/relations/deleteRelationChild/{child_id}', '\App\Http\Controllers\Api\FatherRelationsController@deleteRelationChild')->middleware(['auth.fathers:fathers', 'throttle:10,10']); From 002a082273904bb0f36f94053b1de2f476cd05eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Sat, 16 Oct 2021 13:04:25 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=E5=B0=8F=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/Http/Controllers/Api/AdminController.php | 5 ++++- backend/app/Http/Middleware/AuthAdmin.php | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/backend/app/Http/Controllers/Api/AdminController.php b/backend/app/Http/Controllers/Api/AdminController.php index d9abffb1..fc0e8724 100644 --- a/backend/app/Http/Controllers/Api/AdminController.php +++ b/backend/app/Http/Controllers/Api/AdminController.php @@ -17,6 +17,9 @@ class AdminController extends Controller { } if (null !== ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first())) { + if ((time() >= strtotime($ll->updated_at) + 600) === false) { + LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->delete(); + } if ($ll->fail_number >= 10) { return ['status_code' => 400, 'error_message' => ['10回連続で失敗しましたので、10分、ログインロックになりました。']]; } @@ -40,7 +43,7 @@ class AdminController extends Controller { // パスワードが異なる場合 if (!Hash::check($r->password, $admin->password)) { if ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first()) { - LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => $ll->fail_number+1]); + LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->update(['fail_number' => $ll->fail_number+1]); } else { LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => 1]); diff --git a/backend/app/Http/Middleware/AuthAdmin.php b/backend/app/Http/Middleware/AuthAdmin.php index dbcac856..f7f39744 100644 --- a/backend/app/Http/Middleware/AuthAdmin.php +++ b/backend/app/Http/Middleware/AuthAdmin.php @@ -2,20 +2,28 @@ namespace App\Http\Middleware; +use Closure; +use Illuminate\Support\Facades\Auth; use Illuminate\Auth\Middleware\Authenticate as Middleware; -class AuthAdmin extends Middleware -{ +class AuthAdmin extends Middleware { /** * Get the path the user should be redirected to when they are not authenticated. * * @param \Illuminate\Http\Request $request * @return string|null */ - protected function redirectTo($request) - { + protected function redirectTo ($request) { if (! $request->expectsJson()) { return route('adminlogin'); } } + + public function handle ($request, Closure $next, $guard = null) { + if (Auth::guard($guard)->check()) { + return redirect()->intended('/home'); + } + + return $next($request); +} } From d236866d4e0b20ed0b1e0653905b34ec69f2a7e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Sat, 16 Oct 2021 13:24:01 +0900 Subject: [PATCH 7/8] =?UTF-8?q?=E3=83=AD=E3=82=B0=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=EF=BC=86=E3=82=BB=E3=83=83=E3=82=B7=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=81=AF=E3=82=B0=E3=83=AD=E3=83=BC=E3=83=90=E3=83=AB=E2=86=92?= =?UTF-8?q?=E3=83=AA=E3=82=AF=E3=82=A8=E3=82=B9=E3=83=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/Http/Controllers/Api/AdminController.php | 14 ++++++++++++-- backend/routes/api.php | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/backend/app/Http/Controllers/Api/AdminController.php b/backend/app/Http/Controllers/Api/AdminController.php index fc0e8724..38ed3116 100644 --- a/backend/app/Http/Controllers/Api/AdminController.php +++ b/backend/app/Http/Controllers/Api/AdminController.php @@ -12,6 +12,10 @@ use App\Models\LoginLimits; class AdminController extends Controller { public function login (Request $r) { + if ($r->session()->has('email')) { + return redirect()->intended(); + } + if (null === $r->server('HTTP_USER_AGENT')) { return ['status_code' => 400, 'error_message' => ['不正なuser_agent。']]; } @@ -51,8 +55,14 @@ class AdminController extends Controller { return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; } - // 親一覧の取得に成功 - session(['email' => $admin->email]); + // セッションを想像する + $r->session()->put('email', $admin->email); + return ['status_code' => 200]; + } + + public function logout (Request $r) { + // セッションを破壊する + $r->session()->forget('email'); return ['status_code' => 200]; } } diff --git a/backend/routes/api.php b/backend/routes/api.php index 21da7a07..96d5f859 100644 --- a/backend/routes/api.php +++ b/backend/routes/api.php @@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Route; // AdminController //// 不明 Route::post('/admin/login', '\App\Http\Controllers\Api\AdminController@login')->name('adminlogin'); +Route::post('/admin/logout', '\App\Http\Controllers\Api\AdminController@logout')->middleware(['auth.admins:admins', 'throttle:10,10']); // ContactsController //// 不明 From 41e6d0f0a47a0fe22e68893db93b0377a3ff1fc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Mon, 18 Oct 2021 12:43:59 +0900 Subject: [PATCH 8/8] =?UTF-8?q?useragent=E3=81=AE=E7=A2=BA=E8=AA=8D?= =?UTF-8?q?=E3=82=92=E3=82=B3=E3=83=A1=E3=83=B3=E3=83=88=E3=82=A2=E3=82=A6?= =?UTF-8?q?=E3=83=88=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Http/Controllers/Api/AdminController.php | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/backend/app/Http/Controllers/Api/AdminController.php b/backend/app/Http/Controllers/Api/AdminController.php index 38ed3116..0362ec15 100644 --- a/backend/app/Http/Controllers/Api/AdminController.php +++ b/backend/app/Http/Controllers/Api/AdminController.php @@ -16,18 +16,18 @@ class AdminController extends Controller { return redirect()->intended(); } - if (null === $r->server('HTTP_USER_AGENT')) { - return ['status_code' => 400, 'error_message' => ['不正なuser_agent。']]; - } + // if (null === $r->server('HTTP_USER_AGENT')) { + // return ['status_code' => 400, 'error_message' => ['不正なuser_agent。']]; + // } - if (null !== ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first())) { - if ((time() >= strtotime($ll->updated_at) + 600) === false) { - LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->delete(); - } - if ($ll->fail_number >= 10) { - return ['status_code' => 400, 'error_message' => ['10回連続で失敗しましたので、10分、ログインロックになりました。']]; - } - } + // if (null !== ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first())) { + // if ((time() >= strtotime($ll->updated_at) + 600) === false) { + // LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->delete(); + // } + // if ($ll->fail_number >= 10) { + // return ['status_code' => 400, 'error_message' => ['10回連続で失敗しましたので、10分、ログインロックになりました。']]; + // } + // } $validate = Validator::make($r->all(), [ 'email' => 'required|max:255|email', @@ -46,12 +46,12 @@ class AdminController extends Controller { // パスワードが異なる場合 if (!Hash::check($r->password, $admin->password)) { - if ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first()) { - LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->update(['fail_number' => $ll->fail_number+1]); - } - else { - LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => 1]); - } + // if ($ll = LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->first()) { + // LoginLimits::where('user_agent', $r->server('HTTP_USER_AGENT'))->update(['fail_number' => $ll->fail_number+1]); + // } + // else { + // LoginLimits::create(['user_agent' => $r->server('HTTP_USER_AGENT'), 'fail_number' => 1]); + // } return ['status_code' => 400, 'error_message' => ['ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。']]; }