Skip to content

Commit 5b11f59

Browse files
Adapters: Update to use jsonutil unmarshal (#4021)
Co-authored-by: VeronikaSolovei9 <kalypsonika@gmail.com>
1 parent 3907f1a commit 5b11f59

File tree

445 files changed

+1238
-1014
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

445 files changed

+1238
-1014
lines changed

adapters/33across/33across.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/prebid/prebid-server/v2/config"
1212
"github.com/prebid/prebid-server/v2/errortypes"
1313
"github.com/prebid/prebid-server/v2/openrtb_ext"
14+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1415
)
1516

1617
type TtxAdapter struct {
@@ -76,7 +77,7 @@ func (a *TtxAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adapter
7677
// Skip over imps whose extensions cannot be read since
7778
// we cannot glean Prod or ZoneID which are required to
7879
// group together. However let's not block request creation.
79-
if err := json.Unmarshal(impCopy.Ext, &impExt); err == nil {
80+
if err := jsonutil.Unmarshal(impCopy.Ext, &impExt); err == nil {
8081
impKey := impExt.Ttx.Prod + impExt.Ttx.Zoneid
8182
groupedImps[impKey] = append(groupedImps[impKey], impCopy)
8283
} else {
@@ -126,14 +127,14 @@ func makeImps(imp openrtb2.Imp) (openrtb2.Imp, error) {
126127
}
127128

128129
var bidderExt adapters.ExtImpBidder
129-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
130+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
130131
return openrtb2.Imp{}, &errortypes.BadInput{
131132
Message: err.Error(),
132133
}
133134
}
134135

135136
var ttxExt openrtb_ext.ExtImp33across
136-
if err := json.Unmarshal(bidderExt.Bidder, &ttxExt); err != nil {
137+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &ttxExt); err != nil {
137138
return openrtb2.Imp{}, &errortypes.BadInput{
138139
Message: err.Error(),
139140
}
@@ -177,7 +178,7 @@ func makeReqExt(request *openrtb2.BidRequest) ([]byte, error) {
177178
var reqExt reqExt
178179

179180
if len(request.Ext) > 0 {
180-
if err := json.Unmarshal(request.Ext, &reqExt); err != nil {
181+
if err := jsonutil.Unmarshal(request.Ext, &reqExt); err != nil {
181182
return nil, err
182183
}
183184
}
@@ -215,7 +216,7 @@ func (a *TtxAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalRequ
215216

216217
var bidResp openrtb2.BidResponse
217218

218-
if err := json.Unmarshal(response.Body, &bidResp); err != nil {
219+
if err := jsonutil.Unmarshal(response.Body, &bidResp); err != nil {
219220
return nil, []error{err}
220221
}
221222

@@ -226,7 +227,7 @@ func (a *TtxAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalRequ
226227
var bidExt bidExt
227228
var bidType openrtb_ext.BidType
228229

229-
if err := json.Unmarshal(sb.Bid[i].Ext, &bidExt); err != nil {
230+
if err := jsonutil.Unmarshal(sb.Bid[i].Ext, &bidExt); err != nil {
230231
bidType = openrtb_ext.BidTypeBanner
231232
} else {
232233
bidType = getBidType(bidExt)

adapters/aax/aax.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/prebid/prebid-server/v2/config"
1212
"github.com/prebid/prebid-server/v2/errortypes"
1313
"github.com/prebid/prebid-server/v2/openrtb_ext"
14+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1415
)
1516

1617
type adapter struct {
@@ -63,7 +64,7 @@ func (a *adapter) MakeBids(internalRequest *openrtb2.BidRequest, externalRequest
6364

6465
var bidResp openrtb2.BidResponse
6566

66-
if err := json.Unmarshal(response.Body, &bidResp); err != nil {
67+
if err := jsonutil.Unmarshal(response.Body, &bidResp); err != nil {
6768
return nil, []error{err}
6869
}
6970

@@ -96,7 +97,7 @@ func Builder(bidderName openrtb_ext.BidderName, config config.Adapter, server co
9697

9798
func getMediaTypeForImp(bid openrtb2.Bid, imps []openrtb2.Imp) (openrtb_ext.BidType, error) {
9899
var bidExt aaxResponseBidExt
99-
err := json.Unmarshal(bid.Ext, &bidExt)
100+
err := jsonutil.Unmarshal(bid.Ext, &bidExt)
100101
if err == nil {
101102
switch bidExt.AdCodeType {
102103
case "banner":

adapters/aceex/aceex.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/prebid/prebid-server/v2/errortypes"
1313
"github.com/prebid/prebid-server/v2/macros"
1414
"github.com/prebid/prebid-server/v2/openrtb_ext"
15+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1516
)
1617

1718
type adapter struct {
@@ -90,13 +91,13 @@ func (a *adapter) MakeRequests(
9091

9192
func (a *adapter) getImpressionExt(imp *openrtb2.Imp) (*openrtb_ext.ExtAceex, error) {
9293
var bidderExt adapters.ExtImpBidder
93-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
94+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
9495
return nil, &errortypes.BadInput{
9596
Message: "ext.bidder not provided",
9697
}
9798
}
9899
var aceexExt openrtb_ext.ExtAceex
99-
if err := json.Unmarshal(bidderExt.Bidder, &aceexExt); err != nil {
100+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &aceexExt); err != nil {
100101
return nil, &errortypes.BadInput{
101102
Message: "ext.bidder not provided",
102103
}
@@ -151,7 +152,7 @@ func (a *adapter) MakeBids(
151152

152153
responseBody := bidderRawResponse.Body
153154
var bidResp openrtb2.BidResponse
154-
if err := json.Unmarshal(responseBody, &bidResp); err != nil {
155+
if err := jsonutil.Unmarshal(responseBody, &bidResp); err != nil {
155156
return nil, []error{&errortypes.BadServerResponse{
156157
Message: "Bad Server Response",
157158
}}

adapters/acuityads/acuityads.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/prebid/prebid-server/v2/errortypes"
1313
"github.com/prebid/prebid-server/v2/macros"
1414
"github.com/prebid/prebid-server/v2/openrtb_ext"
15+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1516
)
1617

1718
type AcuityAdsAdapter struct {
@@ -90,13 +91,13 @@ func (a *AcuityAdsAdapter) MakeRequests(
9091

9192
func (a *AcuityAdsAdapter) getImpressionExt(imp *openrtb2.Imp) (*openrtb_ext.ExtAcuityAds, error) {
9293
var bidderExt adapters.ExtImpBidder
93-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
94+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
9495
return nil, &errortypes.BadInput{
9596
Message: "ext.bidder not provided",
9697
}
9798
}
9899
var acuityAdsExt openrtb_ext.ExtAcuityAds
99-
if err := json.Unmarshal(bidderExt.Bidder, &acuityAdsExt); err != nil {
100+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &acuityAdsExt); err != nil {
100101
return nil, &errortypes.BadInput{
101102
Message: "ext.bidder not provided",
102103
}
@@ -155,7 +156,7 @@ func (a *AcuityAdsAdapter) MakeBids(
155156

156157
responseBody := bidderRawResponse.Body
157158
var bidResp openrtb2.BidResponse
158-
if err := json.Unmarshal(responseBody, &bidResp); err != nil {
159+
if err := jsonutil.Unmarshal(responseBody, &bidResp); err != nil {
159160
return nil, []error{&errortypes.BadServerResponse{
160161
Message: "Bad Server Response",
161162
}}

adapters/adapterstest/test_json.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"os"
99
"path/filepath"
1010
"regexp"
11+
"strings"
1112
"testing"
1213

1314
"github.com/google/go-cmp/cmp"
@@ -273,6 +274,10 @@ func assertErrorList(t *testing.T, description string, actual []error, expected
273274
if matched, _ := regexp.MatchString(expected[i].Value, actual[i].Error()); !matched {
274275
t.Errorf(`%s error[%d] had wrong message. Expected match with regex "%s", got "%s"`, description, i, expected[i].Value, actual[i].Error())
275276
}
277+
} else if expected[i].Comparison == "startswith" {
278+
if !strings.HasPrefix(actual[i].Error(), expected[i].Value) {
279+
t.Errorf(`%s error[%d] had wrong message. Expected to start with "%s", got "%s"`, description, i, expected[i].Value, actual[i].Error())
280+
}
276281
} else {
277282
t.Fatalf(`invalid comparison type "%s"`, expected[i].Comparison)
278283
}

adapters/adelement/adelement.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/prebid/prebid-server/v2/errortypes"
1212
"github.com/prebid/prebid-server/v2/macros"
1313
"github.com/prebid/prebid-server/v2/openrtb_ext"
14+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1415
)
1516

1617
type adapter struct {
@@ -58,13 +59,13 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapte
5859

5960
func getImpressionExt(imp *openrtb2.Imp) (*openrtb_ext.ExtAdelement, error) {
6061
var bidderExt adapters.ExtImpBidder
61-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
62+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
6263
return nil, &errortypes.BadInput{
6364
Message: "ext.bidder not provided",
6465
}
6566
}
6667
var adelementExt openrtb_ext.ExtAdelement
67-
if err := json.Unmarshal(bidderExt.Bidder, &adelementExt); err != nil {
68+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &adelementExt); err != nil {
6869
return nil, &errortypes.BadInput{
6970
Message: "ext.bidder not provided",
7071
}
@@ -88,7 +89,7 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
8889
}
8990

9091
var response openrtb2.BidResponse
91-
if err := json.Unmarshal(responseData.Body, &response); err != nil {
92+
if err := jsonutil.Unmarshal(responseData.Body, &response); err != nil {
9293
return nil, []error{&errortypes.BadServerResponse{
9394
Message: "Bad Server Response",
9495
}}

adapters/adf/adf.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"github.com/prebid/prebid-server/v2/config"
1111
"github.com/prebid/prebid-server/v2/errortypes"
1212
"github.com/prebid/prebid-server/v2/openrtb_ext"
13+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1314
)
1415

1516
type adapter struct {
@@ -36,15 +37,15 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapte
3637

3738
for _, imp := range request.Imp {
3839
var bidderExt adapters.ExtImpBidder
39-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
40+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
4041
errors = append(errors, &errortypes.BadInput{
4142
Message: err.Error(),
4243
})
4344
continue
4445
}
4546

4647
var adfImpExt openrtb_ext.ExtImpAdf
47-
if err := json.Unmarshal(bidderExt.Bidder, &adfImpExt); err != nil {
48+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &adfImpExt); err != nil {
4849
errors = append(errors, &errortypes.BadInput{
4950
Message: err.Error(),
5051
})
@@ -65,7 +66,7 @@ func (a *adapter) MakeRequests(request *openrtb2.BidRequest, requestInfo *adapte
6566
var err error
6667

6768
if len(request.Ext) > 0 {
68-
if err = json.Unmarshal(request.Ext, &requestExt); err != nil {
69+
if err = jsonutil.Unmarshal(request.Ext, &requestExt); err != nil {
6970
errors = append(errors, err)
7071
}
7172
}
@@ -117,7 +118,7 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
117118
}
118119

119120
var response openrtb2.BidResponse
120-
if err := json.Unmarshal(responseData.Body, &response); err != nil {
121+
if err := jsonutil.Unmarshal(responseData.Body, &response); err != nil {
121122
return nil, []error{err}
122123
}
123124

@@ -144,7 +145,7 @@ func (a *adapter) MakeBids(request *openrtb2.BidRequest, requestData *adapters.R
144145
func getMediaTypeForBid(bid openrtb2.Bid) (openrtb_ext.BidType, error) {
145146
if bid.Ext != nil {
146147
var bidExt openrtb_ext.ExtBid
147-
err := json.Unmarshal(bid.Ext, &bidExt)
148+
err := jsonutil.Unmarshal(bid.Ext, &bidExt)
148149
if err == nil && bidExt.Prebid != nil {
149150
return openrtb_ext.ParseBidType(string(bidExt.Prebid.Type))
150151
}

adapters/adf/adftest/supplemental/unparsable-response.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"expectedBidResponses": [],
4444
"expectedMakeBidsErrors": [
4545
{
46-
"value": "json: cannot unmarshal string into Go value of type openrtb2.BidResponse",
46+
"value": "expect { or n, but found \"",
4747
"comparison": "literal"
4848
}
4949
]

adapters/adgeneration/adgeneration.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package adgeneration
22

33
import (
4-
"encoding/json"
54
"errors"
65
"fmt"
76
"net/http"
@@ -15,6 +14,7 @@ import (
1514
"github.com/prebid/prebid-server/v2/config"
1615
"github.com/prebid/prebid-server/v2/errortypes"
1716
"github.com/prebid/prebid-server/v2/openrtb_ext"
17+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1818
)
1919

2020
type AdgenerationAdapter struct {
@@ -149,10 +149,10 @@ func (adg *AdgenerationAdapter) getRawQuery(id string, request *openrtb2.BidRequ
149149
func unmarshalExtImpAdgeneration(imp *openrtb2.Imp) (*openrtb_ext.ExtImpAdgeneration, error) {
150150
var bidderExt adapters.ExtImpBidder
151151
var adgExt openrtb_ext.ExtImpAdgeneration
152-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
152+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
153153
return nil, err
154154
}
155-
if err := json.Unmarshal(bidderExt.Bidder, &adgExt); err != nil {
155+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &adgExt); err != nil {
156156
return nil, err
157157
}
158158
if adgExt.Id == "" {
@@ -203,7 +203,7 @@ func (adg *AdgenerationAdapter) MakeBids(internalRequest *openrtb2.BidRequest, e
203203
}}
204204
}
205205
var bidResp adgServerResponse
206-
err := json.Unmarshal(response.Body, &bidResp)
206+
err := jsonutil.Unmarshal(response.Body, &bidResp)
207207
if err != nil {
208208
return nil, []error{err}
209209
}

adapters/adhese/adhese.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/prebid/prebid-server/v2/errortypes"
1717
"github.com/prebid/prebid-server/v2/macros"
1818
"github.com/prebid/prebid-server/v2/openrtb_ext"
19+
"github.com/prebid/prebid-server/v2/util/jsonutil"
1920
)
2021

2122
type AdheseAdapter struct {
@@ -32,7 +33,7 @@ func extractTargetParameters(parameters openrtb_ext.ExtImpAdhese) string {
3233
}
3334
var parametersAsString = ""
3435
var targetParsed map[string]interface{}
35-
err := json.Unmarshal(parameters.Keywords, &targetParsed)
36+
err := jsonutil.Unmarshal(parameters.Keywords, &targetParsed)
3637
if err != nil {
3738
return ""
3839
}
@@ -59,7 +60,7 @@ func extractTargetParameters(parameters openrtb_ext.ExtImpAdhese) string {
5960
func extractGdprParameter(request *openrtb2.BidRequest) string {
6061
if request.User != nil {
6162
var extUser openrtb_ext.ExtUser
62-
if err := json.Unmarshal(request.User.Ext, &extUser); err == nil {
63+
if err := jsonutil.Unmarshal(request.User.Ext, &extUser); err == nil {
6364
return "/xt" + extUser.Consent
6465
}
6566
}
@@ -94,13 +95,13 @@ func (a *AdheseAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *adap
9495
var imp = &request.Imp[0]
9596
var bidderExt adapters.ExtImpBidder
9697

97-
if err := json.Unmarshal(imp.Ext, &bidderExt); err != nil {
98+
if err := jsonutil.Unmarshal(imp.Ext, &bidderExt); err != nil {
9899
errs = append(errs, WrapReqError("Request could not be parsed as ExtImpBidder due to: "+err.Error()))
99100
return nil, errs
100101
}
101102

102103
var params openrtb_ext.ExtImpAdhese
103-
if err := json.Unmarshal(bidderExt.Bidder, &params); err != nil {
104+
if err := jsonutil.Unmarshal(bidderExt.Bidder, &params); err != nil {
104105
errs = append(errs, WrapReqError("Request could not be parsed as ExtImpAdhese due to: "+err.Error()))
105106
return nil, errs
106107
}
@@ -138,7 +139,7 @@ func (a *AdheseAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalR
138139
var bidResponse openrtb2.BidResponse
139140

140141
var adheseBidResponseArray []AdheseBid
141-
if err := json.Unmarshal(response.Body, &adheseBidResponseArray); err != nil {
142+
if err := jsonutil.Unmarshal(response.Body, &adheseBidResponseArray); err != nil {
142143
return nil, []error{err, WrapServerError(fmt.Sprintf("Response %v could not be parsed as generic Adhese bid.", string(response.Body)))}
143144
}
144145

@@ -150,11 +151,11 @@ func (a *AdheseAdapter) MakeBids(internalRequest *openrtb2.BidRequest, externalR
150151
if adheseBid.Origin == "JERLICIA" {
151152
var extArray []AdheseExt
152153
var originDataArray []AdheseOriginData
153-
if err := json.Unmarshal(response.Body, &extArray); err != nil {
154+
if err := jsonutil.Unmarshal(response.Body, &extArray); err != nil {
154155
return nil, []error{err, WrapServerError(fmt.Sprintf("Response %v could not be parsed to JERLICIA ext.", string(response.Body)))}
155156
}
156157

157-
if err := json.Unmarshal(response.Body, &originDataArray); err != nil {
158+
if err := jsonutil.Unmarshal(response.Body, &originDataArray); err != nil {
158159
return nil, []error{err, WrapServerError(fmt.Sprintf("Response %v could not be parsed to JERLICIA origin data.", string(response.Body)))}
159160
}
160161
bidResponse = convertAdheseBid(adheseBid, extArray[0], originDataArray[0])

0 commit comments

Comments
 (0)