Skip to content

通知機能にFCMオプション項目を追加#20

Closed
kantacky wants to merge 8 commits into
mainfrom
feat/notification-fcm-options
Closed

通知機能にFCMオプション項目を追加#20
kantacky wants to merge 8 commits into
mainfrom
feat/notification-fcm-options

Conversation

@kantacky
Copy link
Copy Markdown
Member

概要

通知機能にFCMの詳細オプションを追加し、プラットフォーム別のメッセージ制御を可能にしました。OpenAPIスキーマ更新に伴う再生成と、ドメイン・リポジトリ・ディスパッチ層への反映、Converterでのマッピング拡張までを含みます。

変更点

  • 通知ドメインモデル (internal/domain/notification.go) を拡張し、以下のFCMオプション項目を追加しました。
    • 共通: Body(旧 Message から改称)、ImageURLAnalyticsLabel
    • APNs: APNsBadgeAPNsSoundAPNsContentAvailable
    • Android: AndroidChannelIDAndroidPriorityAndroidTTLSeconds
    • Webpush: WebpushLink
  • 通知ディスパッチ (internal/service/notification_dispatch.go) で、MulticastMessageAndroid / APNS / Webpush / FCMOptions を構築してセットするようにしました。各設定は該当項目が指定されているときのみ生成します。
  • リポジトリ層 (internal/database/notification.go) を新しいフィールドの読み書きに対応させました。
  • Handler Converter (internal/handler/converter.go) でリクエスト/レスポンス双方のFCMオプション項目をマッピングし、intint32 の変換を含めて整合させました。
  • OpenAPI スキーマ (openapi/openapi.yaml) と生成コード (generated/api.gen.go) を dotto-typespec の更新に合わせて再生成しました。

確認内容

  • go build ./... が通ること
  • 既存の通知作成・一覧・ディスパッチの挙動に回帰がないこと
  • 新規フィールド指定時にFCMへ正しくオプションが伝搬すること(APNs/Android/Webpush)

kantacky and others added 8 commits April 22, 2026 18:55
ImageURL/AnalyticsLabel/APNs(Badge/Sound/ContentAvailable)/Android(ChannelID/Priority/TTLSeconds)/WebpushLinkをドメインとGORMモデルに追加し、FCM送信で扱える追加設定を保持できるようにした。
あわせて本文フィールドをMessageからBodyへ改称し、FCM SDKのNotification.Body命名と揃えた。APIスキーマは後続対応のため変更せず、ハンドラのコンバータ側でBodyとMessageのマッピングを維持している。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ドメインに追加したFCMオプション群(ImageURL/AnalyticsLabel/APNs/Android/Webpush)を、MulticastMessageのNotification.ImageURL・FCMOptions・APNSConfig・AndroidConfig・WebpushConfigへそれぞれ設定するようにした。
各プラットフォーム設定は該当フィールドが全てnilのときは付与せず、部分指定でもそのまま送信できるようbuildAndroidConfig/buildAPNSConfig/buildWebpushConfigで組み立てを局所化している。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Notification のドメインモデルとAPI型に追加されていた
ImageURL / AnalyticsLabel / APNs・Android の配信オプション /
WebpushLink などのフィールドが、Converter で取りこぼされていた。
toAPINotification と toDomainNotification の双方で
これらのフィールドを相互に変換するようにし、
APNsBadge と AndroidTTLSeconds については
ドメイン側の int とAPI側の int32 の差異を明示的に変換する。
@kantacky kantacky self-assigned this Apr 24, 2026
@kantacky kantacky closed this Apr 24, 2026
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.

1 participant