From 5fe9d8f9bbf6b9110cc8812ba16dcbe8e3aaa9d6 Mon Sep 17 00:00:00 2001 From: Takeshi NAMAO Date: Tue, 29 Oct 2024 11:07:58 +0900 Subject: [PATCH 1/5] =?UTF-8?q?report=20=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=A2=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89?= =?UTF-8?q?=E5=BE=8C=E3=81=AE=20webhook=20=E3=81=AB=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E3=81=AB=E5=90=AB=E3=81=BE=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=81=9F=20recording=5Fmetadata=20=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uploader.go | 24 +++++++++++++----------- webhook.go | 16 +++++++++------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/uploader.go b/uploader.go index 994a704..3b648ac 100644 --- a/uploader.go +++ b/uploader.go @@ -17,10 +17,11 @@ import ( ) type RecordingReport struct { - RecordingID string `json:"recording_id"` - ChannelID string `json:"channel_id"` - FilePath string `json:"file_path"` - Filename string `json:"filename"` + RecordingID string `json:"recording_id"` + ChannelID string `json:"channel_id"` + FilePath string `json:"file_path"` + Filename string `json:"filename"` + RecordingMetadata json.RawMessage `json:"recording_metadata"` } type UploaderManager struct { @@ -459,13 +460,14 @@ func (u Uploader) handleReport(reportJSONFilePath string) bool { return false } var w = WebhookReportUploaded{ - ID: webhookID, - Type: u.config.WebhookTypeReportUploaded, - Timestamp: time.Now().UTC(), - RecordingID: rr.RecordingID, - ChannelID: rr.ChannelID, - Filename: filename, - FileURL: fileURL, + ID: webhookID, + Type: u.config.WebhookTypeReportUploaded, + Timestamp: time.Now().UTC(), + RecordingID: rr.RecordingID, + ChannelID: rr.ChannelID, + Filename: filename, + FileURL: fileURL, + RecordingMetadata: rr.RecordingMetadata, } buf, err := json.Marshal(w) if err != nil { diff --git a/webhook.go b/webhook.go index d7108da..51aa2fb 100644 --- a/webhook.go +++ b/webhook.go @@ -4,6 +4,7 @@ import ( "bytes" "crypto/tls" "crypto/x509" + "encoding/json" "fmt" "net/http" "net/url" @@ -12,13 +13,14 @@ import ( ) type WebhookReportUploaded struct { - ID string `json:"id"` - Type string `json:"type"` - Timestamp time.Time `json:"timestamp"` - RecordingID string `json:"recording_id"` - ChannelID string `json:"channel_id"` - Filename string `json:"filename"` - FileURL string `json:"file_url"` + ID string `json:"id"` + Type string `json:"type"` + Timestamp time.Time `json:"timestamp"` + RecordingID string `json:"recording_id"` + ChannelID string `json:"channel_id"` + Filename string `json:"filename"` + FileURL string `json:"file_url"` + RecordingMetadata json.RawMessage `json:"recording_metadata,omitempty"` } type WebhookArchiveUploaded struct { From a783b1ca68a2fbf3a64a40da273e1aba1bafbef2 Mon Sep 17 00:00:00 2001 From: Takeshi NAMAO Date: Tue, 29 Oct 2024 11:14:15 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A4=89=E6=9B=B4=E5=B1=A5=E6=AD=B4?= =?UTF-8?q?=E3=81=AB=E8=BF=BD=E8=A8=98=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index 3c7949c..ca0a939 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,9 @@ ## develop +- [UPDATE] report ファイルアップロード後のウェブフックに `recording_metadata` を追加する + - アップロードした report ファイルの `recording_metadata` の内容をウェブフックに含めて送信する + - @tnamao - [UPDATE] CI の staticcheck を 2024.1.1 にアップデート - @voluntas - [UPDATE] go 1.23.2 にアップデート From fb3472eec805f7d48f9382d5afc1e3a2c85024d9 Mon Sep 17 00:00:00 2001 From: Takeshi NAMAO Date: Tue, 29 Oct 2024 11:19:35 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A4=89=E6=9B=B4=E5=B1=A5=E6=AD=B4?= =?UTF-8?q?=E3=81=AB=E3=82=AD=E3=83=BC=E3=81=8C=E3=81=AA=E3=81=84=E5=A0=B4?= =?UTF-8?q?=E5=90=88=E3=81=AE=E6=8C=99=E5=8B=95=E3=82=92=E8=BF=BD=E8=A8=98?= =?UTF-8?q?=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index ca0a939..61b004e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -13,6 +13,7 @@ - [UPDATE] report ファイルアップロード後のウェブフックに `recording_metadata` を追加する - アップロードした report ファイルの `recording_metadata` の内容をウェブフックに含めて送信する + - report ファイルに `recording_metadata` のキーが存在しない場合にはウェブフックにも `recording_metadata` を含めない - @tnamao - [UPDATE] CI の staticcheck を 2024.1.1 にアップデート - @voluntas From 406f68a81e10968bafeed22c899882758e5c53ab Mon Sep 17 00:00:00 2001 From: Takeshi NAMAO Date: Tue, 29 Oct 2024 11:49:30 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=E3=83=AC=E3=82=AC=E3=82=B7=E3=83=BC?= =?UTF-8?q?=E9=8C=B2=E7=94=BB=E3=82=92=E8=80=83=E6=85=AE=E3=81=97=E3=81=9F?= =?UTF-8?q?=E5=87=A6=E7=90=86=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- uploader.go | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/uploader.go b/uploader.go index 3b648ac..58d0ef8 100644 --- a/uploader.go +++ b/uploader.go @@ -19,8 +19,10 @@ import ( type RecordingReport struct { RecordingID string `json:"recording_id"` ChannelID string `json:"channel_id"` + SessionID string `json:"session_id"` FilePath string `json:"file_path"` Filename string `json:"filename"` + Metadata json.RawMessage `json:"metadata"` RecordingMetadata json.RawMessage `json:"recording_metadata"` } @@ -460,15 +462,23 @@ func (u Uploader) handleReport(reportJSONFilePath string) bool { return false } var w = WebhookReportUploaded{ - ID: webhookID, - Type: u.config.WebhookTypeReportUploaded, - Timestamp: time.Now().UTC(), - RecordingID: rr.RecordingID, - ChannelID: rr.ChannelID, - Filename: filename, - FileURL: fileURL, - RecordingMetadata: rr.RecordingMetadata, + ID: webhookID, + Type: u.config.WebhookTypeReportUploaded, + Timestamp: time.Now().UTC(), + RecordingID: rr.RecordingID, + ChannelID: rr.ChannelID, + Filename: filename, + FileURL: fileURL, } + + // セッション録画とレガシー録画では、録画の metadata のキーが異なるための分岐 + // SessionID が空でなければセッション録画とみなす + if rr.SessionID != "" { + w.RecordingMetadata = rr.RecordingMetadata + } else { + w.RecordingMetadata = rr.Metadata + } + buf, err := json.Marshal(w) if err != nil { zlog.Error(). From 9b27a7002950d2c8655e69e41974e220c71f0168 Mon Sep 17 00:00:00 2001 From: Takeshi NAMAO Date: Tue, 29 Oct 2024 11:53:03 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=E5=A4=89=E6=9B=B4=E5=B1=A5=E6=AD=B4?= =?UTF-8?q?=E3=81=AB=E3=83=AC=E3=82=AC=E3=82=B7=E3=83=BC=E9=8C=B2=E7=94=BB?= =?UTF-8?q?=E3=82=82=20recording=5Fmetadata=20=E3=82=92=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E3=81=99=E3=82=8B=E6=97=A8=E3=82=92=E8=A8=98=E8=BC=89=E3=81=99?= =?UTF-8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGES.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 61b004e..c52f5ab 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -12,8 +12,11 @@ ## develop - [UPDATE] report ファイルアップロード後のウェブフックに `recording_metadata` を追加する - - アップロードした report ファイルの `recording_metadata` の内容をウェブフックに含めて送信する - - report ファイルに `recording_metadata` のキーが存在しない場合にはウェブフックにも `recording_metadata` を含めない + - アップロードした report ファイルの `recording_metadata` または `metadata` の内容をウェブフックの `recording_metadata` に含めて送信する + - セッション録画の場合は `recording_metadata` の値を使用する + - レガシー録画の場合は `metadata` の値を使用する + - ウェブフックに含める際のキーはセッション録画でもレガシー録画でも共通で `recording_metadata` に設定する + - report ファイルに `recording_metadata` または `metadata` のキーが存在しない場合にはウェブフックにも `recording_metadata` を含めない - @tnamao - [UPDATE] CI の staticcheck を 2024.1.1 にアップデート - @voluntas