Skip to content

Commit a075583

Browse files
extract buildVideo into utils
1 parent 729db3c commit a075583

File tree

3 files changed

+71
-136
lines changed

3 files changed

+71
-136
lines changed

modules/zeta_global_sspBidAdapter.js

Lines changed: 1 addition & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {deepAccess, deepSetValue, isArray, isBoolean, isNumber, isStr, logWarn} from '../src/utils.js';
1+
import {buildVideo, deepSetValue, isArray, logWarn} from '../src/utils.js';
22
import {registerBidder} from '../src/adapters/bidderFactory.js';
33
import {BANNER, VIDEO} from '../src/mediaTypes.js';
44
import {config} from '../src/config.js';
@@ -20,32 +20,6 @@ const DEFAULT_CUR = 'USD';
2020
const TTL = 300;
2121
const NET_REV = true;
2222

23-
const DATA_TYPES = {
24-
'NUMBER': 'number',
25-
'STRING': 'string',
26-
'BOOLEAN': 'boolean',
27-
'ARRAY': 'array',
28-
'OBJECT': 'object'
29-
};
30-
const VIDEO_CUSTOM_PARAMS = {
31-
'mimes': DATA_TYPES.ARRAY,
32-
'minduration': DATA_TYPES.NUMBER,
33-
'maxduration': DATA_TYPES.NUMBER,
34-
'startdelay': DATA_TYPES.NUMBER,
35-
'playbackmethod': DATA_TYPES.ARRAY,
36-
'api': DATA_TYPES.ARRAY,
37-
'protocols': DATA_TYPES.ARRAY,
38-
'w': DATA_TYPES.NUMBER,
39-
'h': DATA_TYPES.NUMBER,
40-
'battr': DATA_TYPES.ARRAY,
41-
'linearity': DATA_TYPES.NUMBER,
42-
'placement': DATA_TYPES.NUMBER,
43-
'plcmt': DATA_TYPES.NUMBER,
44-
'minbitrate': DATA_TYPES.NUMBER,
45-
'maxbitrate': DATA_TYPES.NUMBER,
46-
'skip': DATA_TYPES.NUMBER
47-
}
48-
4923
export const spec = {
5024
code: BIDDER_CODE,
5125
gvlid: 469,
@@ -308,49 +282,6 @@ function buildBanner(request) {
308282
}
309283
}
310284

311-
function buildVideo(request) {
312-
let video = {};
313-
const videoParams = deepAccess(request, 'mediaTypes.video', {});
314-
for (const key in VIDEO_CUSTOM_PARAMS) {
315-
if (videoParams.hasOwnProperty(key)) {
316-
video[key] = checkParamDataType(key, videoParams[key], VIDEO_CUSTOM_PARAMS[key]);
317-
}
318-
}
319-
if (videoParams.playerSize) {
320-
if (isArray(videoParams.playerSize[0])) {
321-
video.w = parseInt(videoParams.playerSize[0][0], 10);
322-
video.h = parseInt(videoParams.playerSize[0][1], 10);
323-
} else if (isNumber(videoParams.playerSize[0])) {
324-
video.w = parseInt(videoParams.playerSize[0], 10);
325-
video.h = parseInt(videoParams.playerSize[1], 10);
326-
}
327-
}
328-
return video;
329-
}
330-
331-
function checkParamDataType(key, value, datatype) {
332-
let functionToExecute;
333-
switch (datatype) {
334-
case DATA_TYPES.BOOLEAN:
335-
functionToExecute = isBoolean;
336-
break;
337-
case DATA_TYPES.NUMBER:
338-
functionToExecute = isNumber;
339-
break;
340-
case DATA_TYPES.STRING:
341-
functionToExecute = isStr;
342-
break;
343-
case DATA_TYPES.ARRAY:
344-
functionToExecute = isArray;
345-
break;
346-
}
347-
if (functionToExecute(value)) {
348-
return value;
349-
}
350-
logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value);
351-
return undefined;
352-
}
353-
354285
function provideEids(request, payload) {
355286
if (Array.isArray(request.userIdAsEids) && request.userIdAsEids.length > 0) {
356287
deepSetValue(payload, 'user.ext.eids', request.userIdAsEids);

modules/zmaticooBidAdapter.js

Lines changed: 1 addition & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {deepAccess, isArray, isBoolean, isNumber, isStr, logWarn, triggerPixel} from '../src/utils.js';
1+
import {buildVideo, deepAccess, logWarn, triggerPixel} from '../src/utils.js';
22
import {registerBidder} from '../src/adapters/bidderFactory.js';
33
import {BANNER, VIDEO} from '../src/mediaTypes.js';
44

@@ -16,28 +16,6 @@ const DEFAULT_CUR = 'USD';
1616
const TTL = 200;
1717
const NET_REV = true;
1818

19-
const DATA_TYPES = {
20-
'NUMBER': 'number', 'STRING': 'string', 'BOOLEAN': 'boolean', 'ARRAY': 'array', 'OBJECT': 'object'
21-
};
22-
const VIDEO_CUSTOM_PARAMS = {
23-
'mimes': DATA_TYPES.ARRAY,
24-
'minduration': DATA_TYPES.NUMBER,
25-
'maxduration': DATA_TYPES.NUMBER,
26-
'startdelay': DATA_TYPES.NUMBER,
27-
'playbackmethod': DATA_TYPES.ARRAY,
28-
'api': DATA_TYPES.ARRAY,
29-
'protocols': DATA_TYPES.ARRAY,
30-
'w': DATA_TYPES.NUMBER,
31-
'h': DATA_TYPES.NUMBER,
32-
'battr': DATA_TYPES.ARRAY,
33-
'linearity': DATA_TYPES.NUMBER,
34-
'placement': DATA_TYPES.NUMBER,
35-
'plcmt': DATA_TYPES.NUMBER,
36-
'minbitrate': DATA_TYPES.NUMBER,
37-
'maxbitrate': DATA_TYPES.NUMBER,
38-
'skip': DATA_TYPES.NUMBER
39-
}
40-
4119
export const spec = {
4220
code: BIDDER_CODE,
4321
supportedMediaTypes: [BANNER, VIDEO],
@@ -239,49 +217,6 @@ function buildBanner(request) {
239217
};
240218
}
241219

242-
function buildVideo(request) {
243-
let video = {};
244-
const videoParams = deepAccess(request, 'mediaTypes.video', {});
245-
for (const key in VIDEO_CUSTOM_PARAMS) {
246-
if (videoParams.hasOwnProperty(key)) {
247-
video[key] = checkParamDataType(key, videoParams[key], VIDEO_CUSTOM_PARAMS[key]);
248-
}
249-
}
250-
if (videoParams.playerSize) {
251-
if (isArray(videoParams.playerSize[0])) {
252-
video.w = parseInt(videoParams.playerSize[0][0], 10);
253-
video.h = parseInt(videoParams.playerSize[0][1], 10);
254-
} else if (isNumber(videoParams.playerSize[0])) {
255-
video.w = parseInt(videoParams.playerSize[0], 10);
256-
video.h = parseInt(videoParams.playerSize[1], 10);
257-
}
258-
}
259-
return video;
260-
}
261-
262-
export function checkParamDataType(key, value, datatype) {
263-
let functionToExecute;
264-
switch (datatype) {
265-
case DATA_TYPES.BOOLEAN:
266-
functionToExecute = isBoolean;
267-
break;
268-
case DATA_TYPES.NUMBER:
269-
functionToExecute = isNumber;
270-
break;
271-
case DATA_TYPES.STRING:
272-
functionToExecute = isStr;
273-
break;
274-
case DATA_TYPES.ARRAY:
275-
functionToExecute = isArray;
276-
break;
277-
}
278-
if (functionToExecute(value)) {
279-
return value;
280-
}
281-
logWarn('Ignoring param key: ' + key + ', expects ' + datatype + ', found ' + typeof value);
282-
return undefined;
283-
}
284-
285220
function hasBannerMediaType(bidRequest) {
286221
return !!deepAccess(bidRequest, 'mediaTypes.banner');
287222
}

src/utils.js

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,37 @@ import {includes} from './polyfill.js';
44
import { EVENTS, S2S } from './constants.js';
55
import {GreedyPromise} from './utils/promise.js';
66
import {getGlobal} from './prebidGlobal.js';
7+
import { default as deepAccess } from 'dlv/index.js';
78

89
export { default as deepAccess } from 'dlv/index.js';
910
export { dset as deepSetValue } from 'dset';
1011

12+
const DATA_TYPES = {
13+
'NUMBER': 'number',
14+
'STRING': 'string',
15+
'BOOLEAN': 'boolean',
16+
'ARRAY': 'array',
17+
'OBJECT': 'object'
18+
};
19+
const VIDEO_CUSTOM_PARAMS = {
20+
'mimes': DATA_TYPES.ARRAY,
21+
'minduration': DATA_TYPES.NUMBER,
22+
'maxduration': DATA_TYPES.NUMBER,
23+
'startdelay': DATA_TYPES.NUMBER,
24+
'playbackmethod': DATA_TYPES.ARRAY,
25+
'api': DATA_TYPES.ARRAY,
26+
'protocols': DATA_TYPES.ARRAY,
27+
'w': DATA_TYPES.NUMBER,
28+
'h': DATA_TYPES.NUMBER,
29+
'battr': DATA_TYPES.ARRAY,
30+
'linearity': DATA_TYPES.NUMBER,
31+
'placement': DATA_TYPES.NUMBER,
32+
'plcmt': DATA_TYPES.NUMBER,
33+
'minbitrate': DATA_TYPES.NUMBER,
34+
'maxbitrate': DATA_TYPES.NUMBER,
35+
'skip': DATA_TYPES.NUMBER
36+
}
37+
1138
var tStr = 'String';
1239
var tFn = 'Function';
1340
var tNumb = 'Number';
@@ -1189,3 +1216,45 @@ export function hasNonSerializableProperty(obj, checkedObjects = new Set()) {
11891216
}
11901217
return false;
11911218
}
1219+
1220+
export function buildVideo(request) {
1221+
let video = {};
1222+
const videoParams = deepAccess(request, 'mediaTypes.video', {});
1223+
for (const key in VIDEO_CUSTOM_PARAMS) {
1224+
if (videoParams.hasOwnProperty(key)) {
1225+
video[key] = checkParamDataType(key, videoParams[key], VIDEO_CUSTOM_PARAMS[key]);
1226+
}
1227+
}
1228+
if (videoParams.playerSize) {
1229+
if (isArray(videoParams.playerSize[0])) {
1230+
video.w = parseInt(videoParams.playerSize[0][0], 10);
1231+
video.h = parseInt(videoParams.playerSize[0][1], 10);
1232+
} else if (isNumber(videoParams.playerSize[0])) {
1233+
video.w = parseInt(videoParams.playerSize[0], 10);
1234+
video.h = parseInt(videoParams.playerSize[1], 10);
1235+
}
1236+
}
1237+
return video;
1238+
}
1239+
1240+
function checkParamDataType(key, value, datatype) {
1241+
let functionToExecute;
1242+
switch (datatype) {
1243+
case DATA_TYPES.BOOLEAN:
1244+
functionToExecute = isBoolean;
1245+
break;
1246+
case DATA_TYPES.NUMBER:
1247+
functionToExecute = isNumber;
1248+
break;
1249+
case DATA_TYPES.STRING:
1250+
functionToExecute = isStr;
1251+
break;
1252+
case DATA_TYPES.ARRAY:
1253+
functionToExecute = isArray;
1254+
break;
1255+
}
1256+
if (functionToExecute(value)) {
1257+
return value;
1258+
}
1259+
return undefined;
1260+
}

0 commit comments

Comments
 (0)