diff options
| author | s <[email protected]> | 2025-12-20 02:45:32 -0500 |
|---|---|---|
| committer | s <[email protected]> | 2025-12-20 02:45:32 -0500 |
| commit | bfd971bbc8d35685f18f4b9dd3a52f04f8b4f77f (patch) | |
| tree | 2003679a51efaa7c1a43fe4f6da95530de8ce8aa /internal/client/moon.go | |
| parent | c8ad5b9ef9fdc094c2cd974d6b9a65112089922b (diff) | |
| download | dborg-1.0.9.tar.gz dborg-1.0.9.zip | |
feat: add moon logs search command and filename filter support for stealer logsv1.0.9
Diffstat (limited to 'internal/client/moon.go')
| -rw-r--r-- | internal/client/moon.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/internal/client/moon.go b/internal/client/moon.go new file mode 100644 index 0000000..daef57e --- /dev/null +++ b/internal/client/moon.go @@ -0,0 +1,57 @@ +package client + +import ( + "encoding/json" + "fmt" + "net/url" + + "git.db.org.ai/dborg/internal/models" +) + +func (c *Client) SearchMoonLogs(params *models.MoonParams) (*models.MoonResponse, error) { + queryParams := url.Values{} + queryParams.Add("query", params.Query) + + if params.Filename != "" { + queryParams.Add("filename", params.Filename) + } + if params.MaxHits > 0 && params.MaxHits != 10 { + queryParams.Add("max_hits", fmt.Sprintf("%d", params.MaxHits)) + } + if params.SortBy != "" { + queryParams.Add("sort_by", params.SortBy) + } + if params.IngestStartDate != "" { + queryParams.Add("ingest_start_date", params.IngestStartDate) + } + if params.IngestEndDate != "" { + queryParams.Add("ingest_end_date", params.IngestEndDate) + } + if params.PostedStartDate != "" { + queryParams.Add("posted_start_date", params.PostedStartDate) + } + if params.PostedEndDate != "" { + queryParams.Add("posted_end_date", params.PostedEndDate) + } + if params.Format != "" && params.Format != "json" { + queryParams.Add("format", params.Format) + } + + data, err := c.Get("/moon/search", queryParams) + if err != nil { + return nil, err + } + + if params.Format != "" && params.Format != "json" { + return &models.MoonResponse{ + Message: string(data), + }, nil + } + + var response models.MoonResponse + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse moon logs response: %w", err) + } + + return &response, nil +} |
