Skip to content

QRコードの名前・媒体・場所管理とCSV出力機能を追加#1

Open
haruto-kamijo wants to merge 2 commits into
developfrom
feature/qr-name-medium-location-csv-export
Open

QRコードの名前・媒体・場所管理とCSV出力機能を追加#1
haruto-kamijo wants to merge 2 commits into
developfrom
feature/qr-name-medium-location-csv-export

Conversation

@haruto-kamijo

@haruto-kamijo haruto-kamijo commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • QRコードごとにname/medium/location(名前・媒体・場所)を設定・編集できるようにし、旧来のパスコード式location設定画面(location-setup-html/location-view-html)を廃止して管理画面上の編集フォームに統合
  • アクセスログのCSVエクスポート機能を追加(CSV_EXPORT_ENABLEDフラグでデフォルト無効)。従来のグラフ集計ベースのプロジェクト分析ページは廃止
  • PUT /projects/qrcodes/:idPOST /projects/:id/qrcodes に権限チェック(TRACKING_LINK_EDIT)が無かったため追加
  • QRコード保存時のエラー(medium+location重複による409など)がページ上部の目立たないバナーにしか出ず「保存されていないように見える」問題を修正し、フォーム内に直接表示するよう変更
  • Project一覧にQRコード件数を表示

Test plan

  • api/web の typecheck が通ることを確認
  • ローカルのwrangler devでQRコード更新(PUT)が実際にDBへ反映されることを確認
  • 未認証・権限不足でのPUT/POSTが403/401になることを確認
  • 本番環境でmigrations/0001_add_qrcode_name_medium.sql適用後、管理画面からQRコードの編集・保存が正常に動作することを確認済み

haruto-kamijo and others added 2 commits July 21, 2026 22:16
QRコードごとにname/medium/locationを管理できるようにし、旧来のパスコード式
location設定画面(location-setup-html/location-view-html)を廃止して管理画面
上の編集フォームに統合。あわせてアクセスログのCSVエクスポート機能
(CSV_EXPORT_ENABLEDフラグでデフォルト無効)を追加し、グラフ集計だった
プロジェクト分析ページは廃止した。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PUT /projects/qrcodes/:id と POST /projects/:id/qrcodes に権限チェックが
無く、未認可でも編集・作成できてしまっていたため TRACKING_LINK_EDIT の
チェックを追加。あわせて保存失敗時(medium+location重複による409など)の
エラーがページ上部の目立たないバナーにしか出ず「保存されていないように
見える」問題があったため、フォーム内に直接エラーを表示するよう変更。
Project一覧にQRコード件数も表示できるようにした。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@haruto-kamijo haruto-kamijo changed the title Feature/qr name medium location csv export QRコードの名前・媒体・場所管理とCSV出力機能を追加 Jul 21, 2026

@Aquarius0715 Aquarius0715 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

ありがとうございます!
気づいたことコメントしてあります(imoなので不必要だと判断したらマージしていいです

また、これSQLiteですかね?同時書き込みできないイメージですが、問題なさそうですかね?(RDBとかに移管したい感もあるけど、 S3じゃ厳しいですかね?

-- Then re-run schema.sql to create the unique index.

ALTER TABLE QRCodes ADD COLUMN name TEXT NOT NULL DEFAULT '';
ALTER TABLE QRCodes ADD COLUMN medium TEXT NOT NULL DEFAULT '';

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

imo
QRをDBへ保存するメリットってあります?
都度生成でもいいような気がする、、、

const [isLoading, setIsLoading] = useState(false);
const [error, setError] = useState<string | null>(null);
const [currentPage, setCurrentPage] = useState(1);
const [downloadingId, setDownloadingId] = useState<string | null>(null);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

imo

不要なStateな気がする
既存もState使ってるならこのままでおk

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