![見出し画像](https://assets.st-note.com/production/uploads/images/40789641/rectangle_large_type_2_2be2885947571c168d92fb7e38b6a9b9.jpeg?width=1200)
行動履歴(12月13日)
行動履歴
今日は午前中からプログラミングをしていました。午前中は少しデザインを行なっていてある程度妥協できるようなものができたのでそこで終わりました。それからは少し就活関係をしていました。午後からはさらに機能を追加し、少し気になった箇所のデザインを修正、権限周りの確認をしていてコードを修正していました。次に気になっていた機能を触って試行錯誤していました。(Laravel Sailですね!⛴ まだ使いこなせてないのでまた今度使用感なども含めて書こうと思います!)
プログラミングの進捗
権限周りですが今まではポリシーを設定していたのですが今日はその一部を手動で行うようにしました。実はshowメソッドでも事前にそのidの投稿があるかどうかを確認してあればuse caseへ渡していてなければ403を返していました。
何か違和感ないですかね?リソースがなければ404を返すべきですしそもそもあるかどうかの存在確認にDBへ問い合わせをしているんですよね。(それするのならそもままとれよ!)
ではなぜそのようにしなければならないかと言うとuse caseからのリスポンスにも専用のクラスを作成しているのですがそこのコンストラクタでタイプヒンテイングを使用しているがDBからの返答がnullだったときにタイプヒンティングに引っかかってエラーが出てしまっていました。
具体的な修正としてはタイプヒンティングでnullを許可しプレゼンター側でデータが有効かどうかを判断、データがnullだった場合に404を返すようにしました。プレゼンター側で行うのであれば違和感がすくないと思っていて今のところ自分が考えうる最善の策だと感じています。
そのほかの案としてはリスポンスクラスにステータス属性をつけたすと言ったものですがステータスをuse caseで判断する必要が出てくる上にそれはuse caseの責務を超えていると感じてやめました。
この記事が気に入ったらサポートをしてみませんか?