Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (!regex.test(key)) continue;
delete cust_params[key];
}
delete vast_query.cust_params["$$remove"];
}
// transform
let transformed = this.macros.transform(vast_query, {
get: (key) => {
return vast.tnl_keys[key.toLowerCase()];
}
});
query.cust_params = cust_params;
merge(query, transformed);
query.cust_params = qs.stringify(query.cust_params);
return true;
}
}
if (!isPlainObject(vast_query)) return;
// remove query parameters
let query = parser.query;
if (vast_query["$$remove"]) {
for (let key in query) {
let regex = new RegExp(vast_query["$$remove"], "i");
if (!regex.test(key)) continue;
delete query[key];
}
delete vast_query["$$remove"];
}
// remove cust_params parameters
let cust_params = qs.parse(query.cust_params);
if (vast_query.cust_params && vast_query.cust_params["$$remove"]) {
for (let key in cust_params) {
let regex = new RegExp(vast_query.cust_params["$$remove"], "i");
if (!regex.test(key)) continue;
delete cust_params[key];
}
delete vast_query.cust_params["$$remove"];
}
// transform
let transformed = this.macros.transform(vast_query, {
get: (key) => {
return vast.tnl_keys[key.toLowerCase()];
}
});
_transformVast(vast, context) {
let result = {
url: vast.url
};
try {
let parser = new Url(vast.url, true);
let transformed = this._transformQuery(vast, context, parser);
if (transformed)
result.url = parser.toString();
// temp
let cust_params = qs.parse(parser.query.cust_params);
result.bidder = cust_params.hb_bidder;
result.price = cust_params.gd_fp;
return result;
} catch (error) {
result.hasError = true;
result.message = error.message;
result.bidder = "error";
console.log(error.message);
return result;
}
}
const {
method,
parameters,
headers = {},
logging = false
} = options
let url = options.url
const fetchOptions = { method, headers }
// set the JSON body if we have one
if (parametersForBody(method) && parametersIsObject(parameters)) {
fetchOptions.body = JSON.stringify(parameters)
} else if (parametersForQueryString(method) && parametersIsObject(parameters)) {
url = R.concat(url, QueryString.stringify(parameters, true))
}
if (logging) {
logRequest(url, method, parameters)
}
// start the clock
const timeStart = Date.now()
// make the call and wait
return new Promise((resolve, reject) => {
const clientResponse = {
ok: false,
json: null,
statusCode: null
}
export const viewComment = id => (dispatch, _, { pym }) => {
const search = queryString.stringify({
...queryString.parse(location.search),
comment_id: id,
});
// remove the comment_id url param
const url = buildUrl({ ...location, search });
try {
// "window" here refers to the embedded iframe
window.history.replaceState({}, document.title, url);
// also change the parent url
pym.sendMessage('coral-view-comment', id);
} catch (e) {
/* not sure if we're worried about old browsers */
}
// Only set the API key for authenticated endpoints,
// when it is required or optional and set on the client
if (this._usesApiKey()) {
query['access_token'] = this.apiKey
}
// Set the language for localized endpoints
if (this.isLocalized) {
query['lang'] = this.lang
}
// Merge the parsed query parts out of the url
query = Object.assign(query, parsedQuery)
// Build the url with the finished query
query = qs.stringify(query, true).replace(/%2C/g, ',')
return parsedUrl[0] + query
}
export const viewAllComments = () => (dispatch, _, { pym }) => {
const query = queryString.parse(location.search);
// remove the comment_id url param
delete query.comment_id;
const search = queryString.stringify(query);
const url = buildUrl({ ...location, search });
try {
// "window" here refers to the embedded iframe
window.history.replaceState({}, document.title, url);
// also change the parent url
pym.sendMessage('coral-view-all-comments');
} catch (e) {
/* not sure if we're worried about old browsers */
it('sets url parameters', function () {
var stubLoadScript = sinon.stub(adLoader, 'loadScript');
(new Adapter()).callBids(DEFAULT_PARAMS);
var bidUrl = stubLoadScript.getCall(0).args[0];
var parsedBidUrl = urlParse(bidUrl);
var parsedBidUrlQueryString = querystringify.parse(parsedBidUrl.query);
expect(parsedBidUrl.hostname).to.equal('rtb.t.c4tw.net');
expect(parsedBidUrl.pathname).to.equal('/Bid');
expect(parsedBidUrlQueryString).to.have.property('s').and.to.equal('h');
expect(parsedBidUrlQueryString).to.have.property('callback').and.to.equal('$$PREBID_GLOBAL$$.handleTwCB');
expect(parsedBidUrlQueryString).to.have.property('callback_uid').and.to.equal('tw_abcd1234');
expect(parsedBidUrlQueryString).to.have.property('id').and.to.equal('test');
stubLoadScript.restore();
});
var stubLoadScript = sinon.stub(adLoader, 'loadScript').callsFake(function(url) {
var bidUrl = stubLoadScript.getCall(0).args[0];
var parsedBidUrl = urlParse(bidUrl);
var parsedBidUrlQueryString = querystringify.parse(parsedBidUrl.query);
$$PREBID_GLOBAL$$._bidsRequested
.push({ bidderCode: DEFAULT_PARAMS.bidderCode,
bids: [{ bidId: parsedBidUrlQueryString.callback_uid,
placementCode: DEFAULT_PARAMS.bids[0].placementCode }]});
var callback = stringToFunction(parsedBidUrlQueryString.callback);
expect(callback).to.exist.and.to.be.a('function');
callback(BID_RESPONSE);
});
var stubAddBidResponse = sinon.stub(bidmanager, 'addBidResponse');
params: {},
bidId: '9101112',
placementCode: 'div-gpt-ad-12345-3'
}
]
};
adapter().callBids(params);
var bidUrl1 = stubLoadScript.getCall(0).args[0];
var bidUrl2 = stubLoadScript.getCall(1).args[0];
sinon.assert.calledWith(logErrorSpy, 'Bid has no unit', 'centro');
sinon.assert.calledWith(stubLoadScript, bidUrl1);
var parsedBidUrl = urlParse(bidUrl1);
var parsedBidUrlQueryString = querystringify.parse(parsedBidUrl.query);
var generatedCallback = 'window["adCentroHandler_28136300x2501234"]';
expect(parsedBidUrl.hostname).to.equal('staging.brand-server.com');
expect(parsedBidUrl.pathname).to.equal('/hb');
expect(parsedBidUrlQueryString).to.have.property('s').and.to.equal('28136');
expect(parsedBidUrlQueryString).to.have.property('url').and.to.equal('http://test_url.ru');
expect(parsedBidUrlQueryString).to.have.property('sz').and.to.equal('300x250');
expect(parsedBidUrlQueryString).to.have.property('callback').and.to.equal(generatedCallback);
sinon.assert.calledWith(stubLoadScript, bidUrl2);
parsedBidUrl = urlParse(bidUrl2);
parsedBidUrlQueryString = querystringify.parse(parsedBidUrl.query);
generatedCallback = 'window["adCentroHandler_28137728x905678"]';