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を作成 #261

Merged
merged 21 commits into from
Jan 1, 2025

Conversation

mt-osho-san
Copy link
Collaborator

@mt-osho-san mt-osho-san commented Jan 1, 2025

User description

概要

花の画像、タイトル、本文、花束作成可否を返す API を作成

変更点

  • CDK Lambda, API GW 追加
  • Lambda コード追加

影響範囲

  • 既存の API は変更せずに新規で作成したため、影響なし。

テスト

  • pytest にてテストを実行可能

関連 Issue


PR Type

Enhancement


Description

  • 画像、タイトル、本文を取得するAPIを実装

  • 花束作成可否のロジックを追加

  • 新しいDynamoDBテーブルを作成

  • ユニットテストを追加


Changes walkthrough 📝

Relevant files
Enhancement
backend-stack.ts
BackendStackにbouquetTableを追加                                                         

src/backend/lib/backend-stack.ts

  • bouquetTableをDiaryから取得
  • 新しいプロパティを追加
+1/-0     
bouquet.ts
Bouquetクラスの修正                                                                                       

src/backend/lib/constructs/bouquet.ts

  • bouquetTableのプロパティを使用
  • Lambda関数の環境変数を修正
+4/-18   
diary.ts
DiaryクラスにbouquetTableを追加                                                                 

src/backend/lib/constructs/diary.ts

  • bouquetTableを作成
  • getDiaryDataFunctionを追加
  • API Gatewayの設定を追加
+41/-1   
get_diary_data.py
get_diary_data関数の実装                                                                           

src/backend/lambda/get_diary_data/get_diary_data.py

  • 画像、タイトル、本文を取得するロジックを追加
  • ブーケ作成可否のチェックを実装
+278/-0 
Tests
test_get_diary_data.py
get_diary_dataのテスト追加                                                                         

src/backend/test/pytest/test_get_diary_data.py

  • get_diary_data関数のテストを追加
  • 各種ユニットテストを実装
+128/-0 

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

@mt-osho-san mt-osho-san requested a review from Kota8102 as a code owner January 1, 2025 07:21
@mt-osho-san mt-osho-san self-assigned this Jan 1, 2025
@github-actions github-actions bot changed the title Feature/#240 feat: 画像、タイトル、本文を取得するAPIを作成 Jan 1, 2025
Copy link
Contributor

github-actions bot commented Jan 1, 2025

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

240 - Partially compliant

Fully compliant requirements:

  • 花瓶に入っている花の画像 : flower_image
  • タイトル : title
  • 本文 : diary
  • 花束作成可否 : create_diary_flag

Not compliant requirements:

  • 5 日以上日記を記入したこと
  • その週にまだ花を作成していないこと
⏱️ Estimated effort to review: 4 🔵🔵🔵🔵⚪
🔒 No security concerns identified
🔀 No multiple PR themes
⚡ Recommended focus areas for review

Possible Issue

get_flower_id 関数で DynamoDB からの取得が失敗した場合のエラーハンドリングが不十分です。適切なエラーメッセージを返すように修正が必要です。

"""
DynamoDBからflower_idを取得します。

Args:
    user_id (str): ユーザーID。
    date (str): 日付文字列。

Returns:
    Optional[str]: flower_idまたはNone。
"""
table_name = os.getenv("GENERATIVE_AI_TABLE_NAME")
if not table_name:
    logger.error("GENERATIVE_AI_TABLE_NAME is not defined")
    raise ValueError("GENERATIVE_AI_TABLE_NAME is not defined")

table = dynamodb.Table(table_name)

try:
    response = table.get_item(Key={"user_id": user_id, "date": date})
    return response.get("Item", {}).get("flower_id")
except ClientError as e:
    logger.error(f"DynamoDB client error: {e.response['Error']['Message']}")

@mt-osho-san mt-osho-san merged commit 1aa3fe0 into main Jan 1, 2025
12 checks passed
@mt-osho-san mt-osho-san deleted the feature/#240 branch January 1, 2025 14:39
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