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  }