-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestWDC.js
93 lines (75 loc) · 2.72 KB
/
testWDC.js
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
(function () {
$(document).ready(function () {
var myConnector = tableau.makeConnector();
myConnector.getSchema = function (schemaCallback) {
var cols = [
{
id: "DateUpdated",
dataType: tableau.dataTypeEnum.string
}, {
id: "Description",
alias: "Description",
dataType: tableau.dataTypeEnum.string
}, {
id: "IncidentID",
alias: "IncidentID",
dataType: tableau.dataTypeEnum.string
}, {
id: "IncidentType",
alias: "Incident Type",
dataType: tableau.dataTypeEnum.string
}, {
id: "RoutesAffected",
alias: "Routes Affected",
dataType: tableau.dataTypeEnum.string
}
];
var tableSchema = {
id: "BusIncidents",
alias: "WMTA Bus Incidents",
columns: cols
};
schemaCallback([tableSchema]);
};
myConnector.getData = function (table, doneCallback) {
const url = 'https://cors-anywhere.herokuapp.com/https://api.wmata.com/Incidents.svc/json/BusIncidents'
$.ajax({
async: true,
crossDomain: true,
dataType: "json",
url: url,
data: {},
headers: {
"api_key": tableau.connectionData,
"Access-Control-Allow-Origin": "*"
},
success: function(data) {
const allRows = []
const timeSeries = data['BusIncidents']
const keys = Object.keys(timeSeries)
for (var i = 0 ; i < keys.length ; i++) {
var stringRA = data.BusIncidents[i].RoutesAffected
var stringRA2 = stringRA.toString();
const key = keys[i]
const actual = timeSeries[key]
const expected = {}
expected.DateUpdated = actual['DateUpdated']
expected.Description = actual['Description']
expected.IncidentID = actual['IncidentID']
expected.IncidentType = actual['IncidentType']
expected.RoutesAffected = stringRA2
allRows.push(expected)
}
table.appendRows(allRows)
doneCallback();
}
});
};
tableau.registerConnector(myConnector);
$("#submitButton").click(function () {
tableau.connectionData = $("#MetroAPIKey").val();
tableau.connectionName = "WMTA Bus Incidents";
tableau.submit();
});
});
})();