TRA-3234 fetch with _source + no hard limit (#64)

* remove the HARD limit of 5000
This commit is contained in:
gadotroee 2021-06-02 08:17:45 +03:00 committed by GitHub
parent 7dad5be676
commit 2c8d1f854d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 35 additions and 10 deletions

View File

@ -64,7 +64,7 @@ func GetEntries(c *fiber.Ctx) error {
return c.Status(fiber.StatusOK).JSON(baseEntries) return c.Status(fiber.StatusOK).JSON(baseEntries)
} }
func GetHAR(c *fiber.Ctx) error { func GetHARs(c *fiber.Ctx) error {
entriesFilter := &models.HarFetchRequestBody{} entriesFilter := &models.HarFetchRequestBody{}
order := OrderDesc order := OrderDesc
if err := c.QueryParser(entriesFilter); err != nil { if err := c.QueryParser(entriesFilter); err != nil {
@ -87,7 +87,7 @@ func GetHAR(c *fiber.Ctx) error {
utils.ReverseSlice(entries) utils.ReverseSlice(entries)
} }
harsObject := map[string]*har.HAR{} harsObject := map[string]*models.ExtendedHAR{}
for _, entryData := range entries { for _, entryData := range entries {
harEntryObject := []byte(entryData.Entry) harEntryObject := []byte(entryData.Entry)
@ -101,12 +101,15 @@ func GetHAR(c *fiber.Ctx) error {
} else { } else {
var entriesHar []*har.Entry var entriesHar []*har.Entry
entriesHar = append(entriesHar, &harEntry) entriesHar = append(entriesHar, &harEntry)
harsObject[sourceOfEntry] = &har.HAR{ harsObject[sourceOfEntry] = &models.ExtendedHAR{
Log: &har.Log{ Log: &models.ExtendedLog{
Version: "1.2", Version: "1.2",
Creator: &har.Creator{ Creator: &models.ExtendedCreator{
Name: "mizu", Creator: &har.Creator{
Version: "0.0.1", Name: "mizu",
Version: "0.0.2",
},
Source: sourceOfEntry,
}, },
Entries: entriesHar, Entries: entriesHar,
}, },

View File

@ -2,6 +2,7 @@ package models
import ( import (
"encoding/json" "encoding/json"
"github.com/google/martian/har"
"github.com/up9inc/mizu/shared" "github.com/up9inc/mizu/shared"
"mizuserver/pkg/tap" "mizuserver/pkg/tap"
"time" "time"
@ -47,7 +48,7 @@ type EntriesFilter struct {
} }
type HarFetchRequestBody struct { type HarFetchRequestBody struct {
Limit int `query:"limit" validate:"max=5000"` Limit int `query:"limit"`
} }
type WebSocketEntryMessage struct { type WebSocketEntryMessage struct {
@ -80,3 +81,24 @@ func CreateWebsocketTappedEntryMessage(base *tap.OutputChannelItem) ([]byte, err
} }
return json.Marshal(message) return json.Marshal(message)
} }
// ExtendedHAR is the top level object of a HAR log.
type ExtendedHAR struct {
Log *ExtendedLog `json:"log"`
}
// ExtendedLog is the HAR HTTP request and response log.
type ExtendedLog struct {
// Version number of the HAR format.
Version string `json:"version"`
// Creator holds information about the log creator application.
Creator *ExtendedCreator `json:"creator"`
// Entries is a list containing requests and responses.
Entries []*har.Entry `json:"entries"`
}
type ExtendedCreator struct {
*har.Creator
Source string `json:"_source"`
}

View File

@ -12,7 +12,7 @@ func EntriesRoutes(fiberApp *fiber.App) {
routeGroup.Get("/entries", controllers.GetEntries) // get entries (base/thin entries) routeGroup.Get("/entries", controllers.GetEntries) // get entries (base/thin entries)
routeGroup.Get("/entries/:entryId", controllers.GetEntry) // get single (full) entry routeGroup.Get("/entries/:entryId", controllers.GetEntry) // get single (full) entry
routeGroup.Get("/har", controllers.GetHAR) routeGroup.Get("/har", controllers.GetHARs)
routeGroup.Get("/resetDB", controllers.DeleteAllEntries) // get single (full) entry routeGroup.Get("/resetDB", controllers.DeleteAllEntries) // get single (full) entry
routeGroup.Get("/generalStats", controllers.GetGeneralStats) // get general stats about entries in DB routeGroup.Get("/generalStats", controllers.GetGeneralStats) // get general stats about entries in DB

View File

@ -1,6 +1,6 @@
FOLDER=$(GOOS).$(GOARCH) FOLDER=$(GOOS).$(GOARCH)
COMMIT_HASH=$(shell git rev-parse HEAD) COMMIT_HASH=$(shell git rev-parse HEAD)
GIT_BRANCH=$(shell git branch --show-current) GIT_BRANCH=$(shell git branch --show-current | tr '[:upper:]' '[:lower:]')
.PHONY: help .PHONY: help
.DEFAULT_GOAL := help .DEFAULT_GOAL := help