def require_user!
if current_user && !current_user.disabled? && current_user.confirmed?
set_user_activity
elsif current_user && current_user.disabled?
render json: { error: 'Your login is currently disabled' }, status: 403
elsif current_user && !current_user.confirmed?
render json: { error: 'Email confirmation is not completed' }, status: 403
else
render json: { error: 'This method requires an authenticated user' }, status: 422
end
end
@noellabo
ひとつ勉強になりました、ありがとうございます!
Crystal 、リレーのカスタマイズですね。
@mayaeh 私はアセンブリ言語とかCの時代が長かったので、同じチェックが何度も書かれているの見ると避けたくなるんですよねぇ。
最近の言語は、タブかスペースか、などの不毛な議論が起きないようにフォーマッタがついてたり(crystal tool format とか go fmt)するので、良い時代だなと思います。
ruby、railsの流儀は、すごーくなんとなくやってるので、もう少しマジメに勉強します……。
@mayaeh @tateisu 正常系のパスをif〜endの外に出した方がわかりやすい、とかはあるかもしれないなぁ。ifで判定するブロックは全部エラー判定(before_action的な)にするとか。
などという、特に結果に寄与しないコード談義も楽しいのであります。戦争が起きる系ですがw