Skip to content

Commit

Permalink
Merge pull request #49 from shiguredo/feature/add-recording-metadata
Browse files Browse the repository at this point in the history
report ファイルアップロード後のウェブフックに recording_metadata を追加する
  • Loading branch information
tnamao authored Oct 30, 2024
2 parents a720d15 + 9b27a70 commit f5141a4
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 11 deletions.
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

0 comments on commit f5141a4

Please sign in to comment.