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

report ファイルアップロード後のウェブフックに recording_metadata を追加する #49

Merged
merged 5 commits into from
Oct 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@

## develop

- [UPDATE] report ファイルアップロード後のウェブフックに `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
- [UPDATE] go 1.23.2 にアップデート
Expand Down
20 changes: 16 additions & 4 deletions uploader.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ 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"`
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"`
}

type UploaderManager struct {
Expand Down Expand Up @@ -467,6 +470,15 @@ func (u Uploader) handleReport(reportJSONFilePath string) bool {
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().
Expand Down
16 changes: 9 additions & 7 deletions webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"bytes"
"crypto/tls"
"crypto/x509"
"encoding/json"
"fmt"
"net/http"
"net/url"
Expand All @@ -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 {
Expand Down
Loading