Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homeページのフロント部分 #9

Merged
merged 10 commits into from
Jun 6, 2024
Merged

Conversation

ogatakatsuya
Copy link
Owner

@ogatakatsuya ogatakatsuya commented Jun 5, 2024

フロント側から投稿する機能を実装

Copy link
Collaborator

@kou2kkkt1984 kou2kkkt1984 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

かるくこめんと

from fastapi import Depends, APIRouter, HTTPException, status
from fastapi import Depends, APIRouter, HTTPException, Cookie
from sqlalchemy.exc import SQLAlchemyError
from jose import JWTError
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ライブラリを使う時にはそのライブラリが適切にサポートされている状態かを確認しましょう。リリース間隔とか issue や PR 頻度など。なお、うちのチームはこのライブラリは開発初期から使っておりましたが、長期的に使うのはリスクだと判断してそのうち切り替える予定です。

mpdavis/python-jose#340


user_id = await get_current_user_id(db, access_token)
post_body = post_schema.CreatePosts(text=post.text, access_token=access_token)
new_post = await post_cruds.create_post(db, post_body, user_id)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post を作成するのに access token が必要とは思えないので、必要なデータのみを関数に持っていくようにしましょうい。 access_token はあくまでログイン処理やログイン判定に必要なだけで、データ作成には必要ないですよね?


class CreatePosts(Posts):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Posts だと、複数形になっているから Post のリストという意味合いになってしまう。そのため Post だけで良いかと。

@@ -1,11 +1,14 @@
from fastapi import Depends, APIRouter, HTTPException, status
from fastapi import Depends, APIRouter, HTTPException, Cookie
from sqlalchemy.exc import SQLAlchemyError
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これ、追加されていますが、使っていないですよね?

Comment on lines 47 to 51
<Textarea
{...register('text', {
required: 'テキストを入力してください.',
})}
/>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

react は詳しくないので、間違っていたらすまないけど。

基本的には Frontend の世界と Backend の世界は別々に Validator を持つべきですね。基本的に RDB に投入するまでエラーになるかどうかわからないことはなるべく避けるべきです。

文字数自体はどこまでやるか次第ですが、全角140文字半角280文字、Blue 加入者には 4000文字であるので、validation はfront にも backend にもかけるべきかと。

@@ -32,6 +31,32 @@ export default function SubmitMordal({ isOpen, onOpen, onClose }) {
} = useForm()

const [submitError, setSubmitError] = useState(null)
const submitPost = async (value) => {
try {
const res = await fetch("http://localhost:8000/post", {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

これ、いかなる時でも localhost に投げるの?

if (!res.ok) {
const data = await res.json();
console.log(data);
throw new Error('サーバーエラーです。後で再試行してください。');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

validation していない状態なので、201文字以上のデータを送りつけると、そもそも受けつけられないので、文言が間違っている。

Comment on lines 55 to 56
setSubmitError('ネットワークエラーです。後で再試行してください。');
console.error('ネットワークエラー:', err);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ネットワークエラーかどうかは判断できないのでは。

@ogatakatsuya ogatakatsuya merged commit 1e002d0 into main Jun 6, 2024
@ogatakatsuya ogatakatsuya deleted the feat/ogata/homepage branch June 6, 2024 09:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants