-
Notifications
You must be signed in to change notification settings - Fork 0
/
template.tpl
104 lines (82 loc) · 1.97 KB
/
template.tpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
___TERMS_OF_SERVICE___
By creating or modifying this file you agree to Google Tag Manager's Community
Template Gallery Developer Terms of Service available at
https://developers.google.com/tag-manager/gallery-tos (or such other URL as
Google may provide), as modified from time to time.
___INFO___
{
"type": "MACRO",
"id": "cvt_temp_public_id",
"version": 1,
"securityGroups": [],
"displayName": "Math",
"description": "It allows you to do simple mathematical operations between two variables.",
"containerContexts": [
"SERVER"
]
}
___TEMPLATE_PARAMETERS___
[
{
"type": "RADIO",
"name": "type",
"displayName": "Type",
"radioItems": [
{
"value": "multiply",
"displayValue": "Multiply"
},
{
"value": "divide",
"displayValue": "Divide"
},
{
"value": "add",
"displayValue": "Add"
},
{
"value": "subtract",
"displayValue": "Subtract"
}
],
"simpleValueType": true
},
{
"type": "TEXT",
"name": "number1",
"displayName": "Value 1",
"simpleValueType": true
},
{
"type": "TEXT",
"name": "number2",
"displayName": "Value 2",
"simpleValueType": true
}
]
___SANDBOXED_JS_FOR_SERVER___
const makeNumber = require('makeNumber');
const getType = require('getType');
const type = data.type;
if (!data.number1 || !data.number2) return undefined;
const number1 = makeNumber(data.number1);
const number2 = makeNumber(data.number2);
if (getType(number1) !== 'number' || getType(number2) !== 'number' || number1 !== number1 || number2 !== number2) {
return undefined;
}
switch (type) {
case 'multiply':
return number1 * number2;
case 'divide':
return number2 !== 0 ? number1 / number2 : undefined;
case 'add':
return number1 + number2;
case 'subtract':
return number1 - number2;
default:
return undefined;
}
___TESTS___
scenarios: []
___NOTES___
Created on 8/15/2024, 12:08:53 PM