@@ -13,7 +13,6 @@ import (
13
13
"golang.org/x/text/currency"
14
14
15
15
"github.com/prebid/prebid-server/adapters"
16
- "github.com/prebid/prebid-server/errortypes"
17
16
"github.com/prebid/prebid-server/openrtb_ext"
18
17
)
19
18
@@ -33,20 +32,6 @@ func NewYieldlabBidder(endpoint string) *YieldlabAdapter {
33
32
}
34
33
}
35
34
36
- // MakeRequests prepares bid requests to the Yieldlab API
37
- func (a * YieldlabAdapter ) MakeRequests (request * openrtb.BidRequest , reqInfo * adapters.ExtraRequestInfo ) ([]* adapters.RequestData , []error ) {
38
- var errs []error
39
- var adapterRequests []* adapters.RequestData
40
-
41
- adapterReq , errors := a .makeRequest (request )
42
- if adapterReq != nil {
43
- adapterRequests = append (adapterRequests , adapterReq )
44
- }
45
- errs = append (errs , errors ... )
46
-
47
- return adapterRequests , errors
48
- }
49
-
50
35
// Builds endpoint url based on adapter-specific pub settings from imp.ext
51
36
func (a * YieldlabAdapter ) makeEndpointURL (req * openrtb.BidRequest , params * openrtb_ext.ExtImpYieldlab ) (string , error ) {
52
37
uri , err := url .Parse (a .endpoint )
@@ -130,18 +115,12 @@ func (a *YieldlabAdapter) makeTargetingValues(params *openrtb_ext.ExtImpYieldlab
130
115
return values .Encode ()
131
116
}
132
117
133
- func (a * YieldlabAdapter ) makeRequest (request * openrtb.BidRequest ) (* adapters.RequestData , []error ) {
134
- params , err := a .parseRequest (request )
135
- if err != nil {
136
- return nil , []error {err }
118
+ func (a * YieldlabAdapter ) MakeRequests (request * openrtb.BidRequest , _ * adapters.ExtraRequestInfo ) ([]* adapters.RequestData , []error ) {
119
+ if len (request .Imp ) == 0 {
120
+ return nil , []error {fmt .Errorf ("invalid request %+v, no Impressions given" , request )}
137
121
}
138
122
139
- mergedParams , err := a .mergeParams (params )
140
- if err != nil {
141
- return nil , []error {err }
142
- }
143
-
144
- bidURL , err := a .makeEndpointURL (request , mergedParams )
123
+ bidURL , err := a .makeEndpointURL (request , a .mergeParams (a .parseRequest (request )))
145
124
if err != nil {
146
125
return nil , []error {err }
147
126
}
@@ -159,39 +138,35 @@ func (a *YieldlabAdapter) makeRequest(request *openrtb.BidRequest) (*adapters.Re
159
138
headers .Add ("Cookie" , "id=" + request .User .BuyerUID )
160
139
}
161
140
162
- return & adapters.RequestData {
141
+ return [] * adapters.RequestData { {
163
142
Method : "GET" ,
164
143
Uri : bidURL ,
165
144
Headers : headers ,
166
- }, nil
145
+ }} , nil
167
146
}
168
147
169
148
// parseRequest extracts the Yieldlab request information from the request
170
- func (a * YieldlabAdapter ) parseRequest (request * openrtb.BidRequest ) ( []* openrtb_ext.ExtImpYieldlab , error ) {
149
+ func (a * YieldlabAdapter ) parseRequest (request * openrtb.BidRequest ) []* openrtb_ext.ExtImpYieldlab {
171
150
params := make ([]* openrtb_ext.ExtImpYieldlab , 0 )
172
151
173
152
for i := 0 ; i < len (request .Imp ); i ++ {
174
153
bidderExt := new (adapters.ExtImpBidder )
175
154
if err := json .Unmarshal (request .Imp [i ].Ext , bidderExt ); err != nil {
176
- return nil , & errortypes.BadInput {
177
- Message : err .Error (),
178
- }
155
+ continue
179
156
}
180
157
181
158
yieldlabExt := new (openrtb_ext.ExtImpYieldlab )
182
159
if err := json .Unmarshal (bidderExt .Bidder , yieldlabExt ); err != nil {
183
- return nil , & errortypes.BadInput {
184
- Message : err .Error (),
185
- }
160
+ continue
186
161
}
187
162
188
163
params = append (params , yieldlabExt )
189
164
}
190
165
191
- return params , nil
166
+ return params
192
167
}
193
168
194
- func (a * YieldlabAdapter ) mergeParams (params []* openrtb_ext.ExtImpYieldlab ) ( * openrtb_ext.ExtImpYieldlab , error ) {
169
+ func (a * YieldlabAdapter ) mergeParams (params []* openrtb_ext.ExtImpYieldlab ) * openrtb_ext.ExtImpYieldlab {
195
170
var adSlotIds []string
196
171
targeting := make (map [string ]string )
197
172
@@ -205,7 +180,7 @@ func (a *YieldlabAdapter) mergeParams(params []*openrtb_ext.ExtImpYieldlab) (*op
205
180
return & openrtb_ext.ExtImpYieldlab {
206
181
AdslotID : strings .Join (adSlotIds , adSlotIdSeparator ),
207
182
Targeting : targeting ,
208
- }, nil
183
+ }
209
184
}
210
185
211
186
// MakeBids make the bids for the bid response.
@@ -223,10 +198,7 @@ func (a *YieldlabAdapter) MakeBids(internalRequest *openrtb.BidRequest, external
223
198
}
224
199
}
225
200
226
- requests , err := a .parseRequest (internalRequest )
227
- if err != nil {
228
- return nil , []error {err }
229
- }
201
+ params := a .parseRequest (internalRequest )
230
202
231
203
bidderResponse := & adapters.BidderResponse {
232
204
Currency : currency .EUR .String (),
@@ -239,7 +211,7 @@ func (a *YieldlabAdapter) MakeBids(internalRequest *openrtb.BidRequest, external
239
211
return nil , []error {err }
240
212
}
241
213
242
- req := a .findBidReq (bid .ID , requests )
214
+ req := a .findBidReq (bid .ID , params )
243
215
if req == nil {
244
216
return nil , []error {
245
217
fmt .Errorf ("failed to find yieldlab request for adslotID %v. This is most likely a programming issue" , bid .ID ),
0 commit comments