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

feat: プロフィール画像を登録する API を作成 #256

Merged
merged 20 commits into from
Dec 26, 2024

Conversation

mt-osho-san
Copy link
Collaborator

@mt-osho-san mt-osho-san commented Dec 17, 2024

User description

概要

プロファイル画像を登録するAPIを作成

変更点

このセクションでは、具体的な変更点や修正箇所を箇条書きでリストアップしてください。

  • 画像を保存する S3 を作成
  • 画像を保存する Lambda を作成
  • API のリソースを追加

影響範囲

  • 新規コンストラクトを (Settings) をスタックに追加

テスト

  • pytest により test_upload_profile_image.py を実行

関連 Issue


PR Type

Enhancement


Description

  • プロフィール画像を登録する API を実装しました。
  • S3 に画像を保存するための Lambda 関数を作成しました。
  • API Gateway に新しいエンドポイント /settings を追加し、画像アップロード機能を提供します。
  • 画像データのデコードと S3 へのアップロードを行う関数を実装しました。
  • テストケースを追加し、機能の正確性を確認しました。

Changes walkthrough 📝

Relevant files
Enhancement
backend-stack.ts
Backend Stack に Settings コンストラクトを追加                                           

src/backend/lib/backend-stack.ts

  • Settings コンストラクトを追加
  • API リソースに settings を追加
+7/-1     
settings.ts
プロフィール画像アップロード用の設定を追加                                                                       

src/backend/lib/constructs/settings.ts

  • プロフィール画像保存用の S3 バケットを作成
  • 画像アップロード用 Lambda 関数を定義
  • API Gateway に POST メソッドを追加
  • +43/-0   
    upload_profile_image.py
    画像アップロード用 Lambda 関数の実装                                                                     

    src/backend/lambda/upload_profile_image/upload_profile_image.py

    • 画像データをデコードする関数を追加
    • S3 に画像をアップロードする関数を追加
    • Lambda ハンドラーを実装
    +96/-0   
    Tests
    test_upload_profile_image.py
    画像アップロード機能のテストを追加                                                                               

    src/backend/test/pytest/test_upload_profile_image.py

    • decode_image_data 関数のテストを追加
    • upload_to_s3 関数のテストを追加
    +53/-0   

    💡 PR-Agent usage: Comment /help "your question" on any pull request to receive relevant information

    @mt-osho-san mt-osho-san self-assigned this Dec 17, 2024
    @mt-osho-san mt-osho-san linked an issue Dec 17, 2024 that may be closed by this pull request
    @github-actions github-actions bot changed the title Feature/#252 feat: プロフィール画像を登録する API を作成 Dec 17, 2024
    Copy link
    Contributor

    github-actions bot commented Dec 17, 2024

    PR Reviewer Guide 🔍

    (Review updated until commit efa4d73)

    Here are some key observations to aid the review process:

    🎫 Ticket compliance analysis 🔶

    252 - Partially compliant

    Fully compliant requirements:

    • API の名前 : POST /profile/image
    • s3 の user-setting-bucket の /profile/ に保存

    Not compliant requirements:

    • クエリパラメーター : なし (event から user_id を取得)
    • return は 成功 or 失敗メッセージ
    ⏱️ Estimated effort to review: 4 🔵🔵🔵🔵⚪
    🔒 Security concerns

    CORS 設定:
    allowedOrigins に '*' を使用することは、セキュリティ上のリスクを伴う可能性があります。特定のオリジンを指定することを推奨します。

    🔀 No multiple PR themes
    ⚡ Recommended focus areas for review

    Possible Bug
    S3 バケットの CORS 設定が適切か確認する必要があります。特に、allowedOrigins に '*' を使用することはセキュリティ上のリスクを伴う可能性があります。

    Error Handling
    画像データのデコードやアップロード時に発生する可能性のあるエラーに対して、より具体的なエラーメッセージを提供することを検討してください。

    @mt-osho-san
    Copy link
    Collaborator Author

    /review

    Copy link
    Contributor

    Persistent review updated to latest commit efa4d73

    except Exception as e:
    raise ValueError("Invalid base64-encoded image data") from e

    if len(decoded_data) > MAX_FILE_SIZE_BYTES:
    Copy link
    Owner

    Choose a reason for hiding this comment

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

    サイズが大きすぎるについて教えてほしい。
    サイズ制限がどこの仕様上あるの?

    Copy link
    Collaborator Author

    Choose a reason for hiding this comment

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

    ないです。
    削除しました。

    @mt-osho-san mt-osho-san merged commit 81b8fdb into main Dec 26, 2024
    11 checks passed
    @mt-osho-san mt-osho-san deleted the feature/#252 branch December 26, 2024 01:06
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    設定画面の画像を登録する API を作成
    2 participants