-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstat.js
120 lines (106 loc) · 4.97 KB
/
stat.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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
const url = "https://www.balldontlie.io/api/v1/players";
var playersContainer = document.getElementById("player-data");
var statContainer = document.getElementById("stat-data");
var searchContainer = document.getElementById("search-data");
var searchBtn = document.getElementById("search-btn");
var playerStatsSearchbtn = document.getElementById("player-search-btn");
searchBtn.addEventListener("click", () => {
statContainer.innerHTML = "";
var startYear = document.getElementById("startingSeason").value;
var endYear = document.getElementById("endingSeason").value;
var searchUrl = `https://www.balldontlie.io/api/v1/stats?seasons[]=${startYear}&seasons[]=${endYear}`;
fetch(searchUrl)
.then((res) => res.json())
.then((resJson) => {
var stats = resJson.data;
stats.forEach((stat) => {
// append to div
var innerhtml = `<div class="col-md-4 m-1">
<div class="card">
<div class="card-header pv">
<h4 class="card-title"> ${stat.player.first_name} ${stat.player.last_name}</h4>
</div>
<hr>
<div class="card-body pv">
<p class="my-1">Assists: ${stat.ast}</p>
<p class="my-1">Blocks: ${stat.blk}</p>
<p class="my-1">Offensive rebounds: ${stat.oreb}</p>
<p class="my-1">Defensive rebounds: ${stat.dreb}</p>
<p class="my-1">3pt percentage: ${stat.fg3_pct}</p>
<p class="my-1">3pt average: ${stat.fg3a}</p>
<p class="my-1">Field goal percentage: ${stat.fg_pct}</p>
<p class="my-1">Field goal average: ${stat.fga}</p>
<p class="my-1">Turnovers: ${stat.turnover}</p>
</div>
<hr>
<div class="card-footer text-muted">
<em>Played on: ${stat.game.date}</em>
</div>
</div>
</div>`;
statContainer.innerHTML += innerhtml;
});
})
.catch((err) => console.log(err));
});
playerStatsSearchbtn.addEventListener("click", () => {
searchContainer.innerHTML = "";
var searchTerm = document.getElementById("playerName").value;
if (searchTerm == "" || searchTerm == undefined || searchTerm == false) {
alert("Player name cannot be empty")
return
}
console.log(searchTerm)
var searchUrl = `${url}?search=${searchTerm}`;
var playerIds = [];
fetch(searchUrl)
.then((res) => res.json())
.then((resJson) => {
var players = resJson.data;
console.log(players)
players.forEach((player) => {
playerIds.push(player.id);
});
var playerIdsString = "";
playerIds.forEach((id) => {
playerIdsString += `&player_ids[]=${id}`;
});
console.log(playerIds)
var startYear = document.getElementById("statStart").value;
var currentUrl = `https://www.balldontlie.io/api/v1/stats?seasons[]=${startYear}${playerIdsString}&per_page=100`;
fetch(currentUrl)
.then((res) => res.json())
.then((resJson) => {
var stats = resJson.data;
stats
.forEach((stat) => {
// append to div
var innerhtml = `<div class="col-md-4 m-1">
<div class="card">
<div class="card-header pv">
<h4 class="card-title"> ${stat.player.first_name} ${stat.player.last_name}</h4>
</div>
<div class="card-body pv">
<p class="my-1">Assists: ${stat.ast}</p>
<p class="my-1">Blocks: ${stat.blk}</p>
<p class="my-1">Offensive rebounds: ${stat.oreb}</p>
<p class="my-1">Defensive rebounds: ${stat.dreb}</p>
<p class="my-1">3pt percentage: ${stat.fg3_pct}</p>
<p class="my-1">3pt average: ${stat.fg3a}</p>
<p class="my-1">Field goal percentage: ${stat.fg_pct}</p>
<p class="my-1">Field goal average: ${stat.fga}</p>
<p class="my-1">Turnovers: ${stat.turnover}</p>
</div>
<hr>
<div class="card-footer text-muted">
<small>Played on: ${stat.game.date}</small>
</div>
</div>
</div>`;
searchContainer.innerHTML += innerhtml;
})
}).catch((err) => console.log(err));
})
.catch((err) => console.log(err));
});
// fetchAndRender(url, playersContainer, 'col-md-3');