first commit
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
package dto
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"browser.local/platform/domain"
|
||||
)
|
||||
|
||||
type LogEntryBody struct {
|
||||
Seq uint64 `json:"seq"`
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Level string `json:"level,omitempty"`
|
||||
Line string `json:"line"`
|
||||
Fields map[string]string `json:"fields,omitempty"`
|
||||
Redacted bool `json:"redacted"`
|
||||
}
|
||||
|
||||
type LogBatchIngestRequest struct {
|
||||
RunEndpointID string `json:"runEndpointId"`
|
||||
SessionToken string `json:"sessionToken"`
|
||||
LogStreamID string `json:"logStreamId"`
|
||||
ServerInstanceID string `json:"serverInstanceId"`
|
||||
StreamKey string `json:"streamKey"`
|
||||
Source domain.LogStreamSource `json:"source"`
|
||||
FirstSeq uint64 `json:"firstSeq"`
|
||||
LastSeq uint64 `json:"lastSeq"`
|
||||
Compression string `json:"compression"`
|
||||
Checksum string `json:"checksum"`
|
||||
Entries []LogEntryBody `json:"entries"`
|
||||
}
|
||||
|
||||
type LogBatchIngestResponse struct {
|
||||
Accepted bool `json:"accepted"`
|
||||
LogStreamID string `json:"logStreamId"`
|
||||
AcceptedFrom uint64 `json:"acceptedFrom"`
|
||||
AcceptedTo uint64 `json:"acceptedTo"`
|
||||
LatestSeq uint64 `json:"latestSeq"`
|
||||
Duplicate bool `json:"duplicate"`
|
||||
RetryAfterSec int `json:"retryAfterSec,omitempty"`
|
||||
ServerTime time.Time `json:"serverTime"`
|
||||
}
|
||||
|
||||
type LogStreamCursorRequest struct {
|
||||
LogStreamID string `json:"logStreamId"`
|
||||
AfterSeq uint64 `json:"afterSeq"`
|
||||
Limit int `json:"limit"`
|
||||
}
|
||||
|
||||
type LogStreamCursorResponse struct {
|
||||
LogStreamID string `json:"logStreamId"`
|
||||
Entries []LogEntryBody `json:"entries"`
|
||||
NextSeq uint64 `json:"nextSeq"`
|
||||
LatestSeq uint64 `json:"latestSeq"`
|
||||
}
|
||||
|
||||
func (request LogBatchIngestRequest) ToDomain() domain.LogBatchIngest {
|
||||
return domain.LogBatchIngest{
|
||||
RunEndpointID: request.RunEndpointID,
|
||||
SessionToken: request.SessionToken,
|
||||
LogStreamID: request.LogStreamID,
|
||||
ServerInstanceID: request.ServerInstanceID,
|
||||
StreamKey: request.StreamKey,
|
||||
Source: request.Source,
|
||||
FirstSeq: request.FirstSeq,
|
||||
LastSeq: request.LastSeq,
|
||||
Compression: request.Compression,
|
||||
Checksum: request.Checksum,
|
||||
Entries: logEntriesToDomain(request.Entries),
|
||||
}
|
||||
}
|
||||
|
||||
func (request LogStreamCursorRequest) ToDomain() domain.LogStreamCursorQuery {
|
||||
return domain.LogStreamCursorQuery{
|
||||
LogStreamID: request.LogStreamID,
|
||||
AfterSeq: request.AfterSeq,
|
||||
Limit: request.Limit,
|
||||
}
|
||||
}
|
||||
|
||||
func LogBatchIngestFromDomain(result domain.LogBatchIngestResult) LogBatchIngestResponse {
|
||||
return LogBatchIngestResponse{
|
||||
Accepted: result.Accepted,
|
||||
LogStreamID: result.LogStreamID,
|
||||
AcceptedFrom: result.AcceptedFrom,
|
||||
AcceptedTo: result.AcceptedTo,
|
||||
LatestSeq: result.LatestSeq,
|
||||
Duplicate: result.Duplicate,
|
||||
ServerTime: result.ServerTime,
|
||||
}
|
||||
}
|
||||
|
||||
func LogStreamCursorFromDomain(result domain.LogStreamCursorResult) LogStreamCursorResponse {
|
||||
result = domain.CopyLogStreamCursorResult(result)
|
||||
return LogStreamCursorResponse{
|
||||
LogStreamID: result.LogStreamID,
|
||||
Entries: logEntriesFromDomain(result.Entries),
|
||||
NextSeq: result.NextSeq,
|
||||
LatestSeq: result.LatestSeq,
|
||||
}
|
||||
}
|
||||
|
||||
func logEntriesToDomain(entries []LogEntryBody) []domain.LogEntry {
|
||||
if entries == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]domain.LogEntry, len(entries))
|
||||
for i, entry := range entries {
|
||||
out[i] = domain.LogEntry{
|
||||
Seq: entry.Seq,
|
||||
Timestamp: entry.Timestamp,
|
||||
Level: entry.Level,
|
||||
Line: entry.Line,
|
||||
Fields: copyStringMap(entry.Fields),
|
||||
Redacted: entry.Redacted,
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func logEntriesFromDomain(entries []domain.LogEntry) []LogEntryBody {
|
||||
if entries == nil {
|
||||
return nil
|
||||
}
|
||||
out := make([]LogEntryBody, len(entries))
|
||||
for i, entry := range entries {
|
||||
out[i] = LogEntryBody{
|
||||
Seq: entry.Seq,
|
||||
Timestamp: entry.Timestamp,
|
||||
Level: entry.Level,
|
||||
Line: entry.Line,
|
||||
Fields: copyStringMap(entry.Fields),
|
||||
Redacted: entry.Redacted,
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func copyStringMap(values map[string]string) map[string]string {
|
||||
if values == nil {
|
||||
return nil
|
||||
}
|
||||
out := make(map[string]string, len(values))
|
||||
for key, value := range values {
|
||||
out[key] = value
|
||||
}
|
||||
return out
|
||||
}
|
||||
Reference in New Issue
Block a user