Skip to content

Commit 64584f6

Browse files
authored
Refactor: Remove getAuctionBidderRequests (#3957)
1 parent d54c3ed commit 64584f6

File tree

1 file changed

+69
-78
lines changed

1 file changed

+69
-78
lines changed

exchange/utils.go

Lines changed: 69 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,76 @@ func (rs *requestSplitter) cleanOpenRTBRequests(ctx context.Context,
8181
return
8282
}
8383

84-
var allBidderRequests []BidderRequest
84+
allBidderRequests := make([]BidderRequest, 0, len(impsByBidder))
8585
var allBidderRequestErrs []error
86-
allBidderRequests, allBidderRequestErrs = getAuctionBidderRequests(auctionReq, requestExt, rs.bidderToSyncerKey, impsByBidder, requestAliases, rs.hostSChainNode)
86+
explicitBuyerUIDs, err := extractBuyerUIDs(req.BidRequest.User)
87+
if err != nil {
88+
errs = []error{err}
89+
return
90+
}
91+
92+
bidderParamsInReqExt, err := ExtractReqExtBidderParamsMap(req.BidRequest)
93+
if err != nil {
94+
errs = []error{err}
95+
return
96+
}
97+
98+
sChainWriter, err := schain.NewSChainWriter(requestExt, rs.hostSChainNode)
99+
if err != nil {
100+
errs = []error{err}
101+
return
102+
}
103+
104+
lowerCaseExplicitBuyerUIDs := make(map[string]string)
105+
for bidder, uid := range explicitBuyerUIDs {
106+
lowerKey := strings.ToLower(bidder)
107+
lowerCaseExplicitBuyerUIDs[lowerKey] = uid
108+
}
109+
110+
for bidder, imps := range impsByBidder {
111+
coreBidder, isRequestAlias := resolveBidder(bidder, requestAliases)
112+
113+
reqCopy := *req.BidRequest
114+
reqCopy.Imp = imps
115+
116+
sChainWriter.Write(&reqCopy, bidder)
117+
118+
reqCopy.Ext, err = buildRequestExtForBidder(bidder, req.BidRequest.Ext, requestExt, bidderParamsInReqExt, auctionReq.Account.AlternateBidderCodes)
119+
if err != nil {
120+
errs = append(errs, err)
121+
continue
122+
}
123+
124+
if err := removeUnpermissionedEids(&reqCopy, bidder, requestExt); err != nil {
125+
errs = append(errs, fmt.Errorf("unable to enforce request.ext.prebid.data.eidpermissions because %v", err))
126+
continue
127+
}
128+
129+
bidderRequest := BidderRequest{
130+
BidderName: openrtb_ext.BidderName(bidder),
131+
BidderCoreName: coreBidder,
132+
IsRequestAlias: isRequestAlias,
133+
BidRequest: &reqCopy,
134+
BidderLabels: metrics.AdapterLabels{
135+
Source: auctionReq.LegacyLabels.Source,
136+
RType: auctionReq.LegacyLabels.RType,
137+
Adapter: coreBidder,
138+
PubID: auctionReq.LegacyLabels.PubID,
139+
CookieFlag: auctionReq.LegacyLabels.CookieFlag,
140+
AdapterBids: metrics.AdapterBidPresent,
141+
},
142+
}
143+
144+
syncerKey := rs.bidderToSyncerKey[string(coreBidder)]
145+
if hadSync := prepareUser(&reqCopy, bidder, syncerKey, lowerCaseExplicitBuyerUIDs, auctionReq.UserSyncs); !hadSync && req.BidRequest.App == nil {
146+
bidderRequest.BidderLabels.CookieFlag = metrics.CookieFlagNo
147+
} else {
148+
bidderRequest.BidderLabels.CookieFlag = metrics.CookieFlagYes
149+
}
150+
151+
allBidderRequests = append(allBidderRequests, bidderRequest)
152+
}
153+
87154
if allBidderRequestErrs != nil {
88155
errs = append(errs, allBidderRequestErrs...)
89156
}
@@ -322,82 +389,6 @@ func ExtractReqExtBidderParamsMap(bidRequest *openrtb2.BidRequest) (map[string]j
322389
return bidderParams, nil
323390
}
324391

325-
func getAuctionBidderRequests(auctionRequest AuctionRequest,
326-
requestExt *openrtb_ext.ExtRequest,
327-
bidderToSyncerKey map[string]string,
328-
impsByBidder map[string][]openrtb2.Imp,
329-
requestAliases map[string]string,
330-
hostSChainNode *openrtb2.SupplyChainNode) ([]BidderRequest, []error) {
331-
332-
bidderRequests := make([]BidderRequest, 0, len(impsByBidder))
333-
req := auctionRequest.BidRequestWrapper
334-
explicitBuyerUIDs, err := extractBuyerUIDs(req.BidRequest.User)
335-
if err != nil {
336-
return nil, []error{err}
337-
}
338-
339-
bidderParamsInReqExt, err := ExtractReqExtBidderParamsMap(req.BidRequest)
340-
if err != nil {
341-
return nil, []error{err}
342-
}
343-
344-
sChainWriter, err := schain.NewSChainWriter(requestExt, hostSChainNode)
345-
if err != nil {
346-
return nil, []error{err}
347-
}
348-
349-
lowerCaseExplicitBuyerUIDs := make(map[string]string)
350-
for bidder, uid := range explicitBuyerUIDs {
351-
lowerKey := strings.ToLower(bidder)
352-
lowerCaseExplicitBuyerUIDs[lowerKey] = uid
353-
}
354-
355-
var errs []error
356-
for bidder, imps := range impsByBidder {
357-
coreBidder, isRequestAlias := resolveBidder(bidder, requestAliases)
358-
359-
reqCopy := *req.BidRequest
360-
reqCopy.Imp = imps
361-
362-
sChainWriter.Write(&reqCopy, bidder)
363-
364-
reqCopy.Ext, err = buildRequestExtForBidder(bidder, req.BidRequest.Ext, requestExt, bidderParamsInReqExt, auctionRequest.Account.AlternateBidderCodes)
365-
if err != nil {
366-
return nil, []error{err}
367-
}
368-
369-
if err := removeUnpermissionedEids(&reqCopy, bidder, requestExt); err != nil {
370-
errs = append(errs, fmt.Errorf("unable to enforce request.ext.prebid.data.eidpermissions because %v", err))
371-
continue
372-
}
373-
374-
bidderRequest := BidderRequest{
375-
BidderName: openrtb_ext.BidderName(bidder),
376-
BidderCoreName: coreBidder,
377-
IsRequestAlias: isRequestAlias,
378-
BidRequest: &reqCopy,
379-
BidderLabels: metrics.AdapterLabels{
380-
Source: auctionRequest.LegacyLabels.Source,
381-
RType: auctionRequest.LegacyLabels.RType,
382-
Adapter: coreBidder,
383-
PubID: auctionRequest.LegacyLabels.PubID,
384-
CookieFlag: auctionRequest.LegacyLabels.CookieFlag,
385-
AdapterBids: metrics.AdapterBidPresent,
386-
},
387-
}
388-
389-
syncerKey := bidderToSyncerKey[string(coreBidder)]
390-
if hadSync := prepareUser(&reqCopy, bidder, syncerKey, lowerCaseExplicitBuyerUIDs, auctionRequest.UserSyncs); !hadSync && req.BidRequest.App == nil {
391-
bidderRequest.BidderLabels.CookieFlag = metrics.CookieFlagNo
392-
} else {
393-
bidderRequest.BidderLabels.CookieFlag = metrics.CookieFlagYes
394-
}
395-
396-
bidderRequests = append(bidderRequests, bidderRequest)
397-
}
398-
return bidderRequests, errs
399-
}
400-
401392
func buildRequestExtForBidder(bidder string, requestExt json.RawMessage, requestExtParsed *openrtb_ext.ExtRequest, bidderParamsInReqExt map[string]json.RawMessage, cfgABC *openrtb_ext.ExtAlternateBidderCodes) (json.RawMessage, error) {
402393
// Resolve alternatebiddercode for current bidder
403394
var reqABC *openrtb_ext.ExtAlternateBidderCodes

0 commit comments

Comments
 (0)