github.com/prebid/prebid-server/v2@v2.18.0/analytics/agma/model.go (about) 1 package agma 2 3 import ( 4 "fmt" 5 "time" 6 7 "github.com/prebid/openrtb/v20/openrtb2" 8 "github.com/prebid/prebid-server/v2/openrtb_ext" 9 "github.com/prebid/prebid-server/v2/util/jsonutil" 10 ) 11 12 type EventType string 13 14 const ( 15 EventTypeAuction EventType = "auction" 16 EventTypeAmp EventType = "amp" 17 EventTypeVideo EventType = "video" 18 ) 19 20 type logObject struct { 21 EventType EventType `json:"type"` 22 RequestId string `json:"id"` 23 AccountCode string `json:"code"` 24 Site *openrtb2.Site `json:"site,omitempty"` 25 App *openrtb2.App `json:"app,omitempty"` 26 Device *openrtb2.Device `json:"device,omitempty"` 27 User *openrtb2.User `json:"user,omitempty"` 28 CreatedAt time.Time `json:"created_at"` 29 } 30 31 func serializeAnayltics( 32 requestwrapper *openrtb_ext.RequestWrapper, 33 eventType EventType, 34 code string, 35 createdAt time.Time, 36 ) ([]byte, error) { 37 if requestwrapper == nil || requestwrapper.BidRequest == nil { 38 return nil, fmt.Errorf("requestwrapper or BidRequest object nil") 39 } 40 return jsonutil.Marshal(&logObject{ 41 EventType: eventType, 42 RequestId: requestwrapper.ID, 43 AccountCode: code, 44 Site: requestwrapper.BidRequest.Site, 45 App: requestwrapper.BidRequest.App, 46 Device: requestwrapper.BidRequest.Device, 47 User: requestwrapper.BidRequest.User, 48 CreatedAt: createdAt, 49 }) 50 }