Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5198a1c0f4 | |||
| 7297c0a16b | |||
| ada2dcb4ae | |||
| 5ece854340 |
Generated
+2
-2
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "pdga-ratings",
|
"name": "pdga-ratings",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "pdga-ratings",
|
"name": "pdga-ratings",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ejs": "^4.0.1",
|
"ejs": "^4.0.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pdga-ratings",
|
"name": "pdga-ratings",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"description": "PDGA rating scraper and display",
|
"description": "PDGA rating scraper and display",
|
||||||
"main": "server.js",
|
"main": "server.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
+19
-4
@@ -17,12 +17,27 @@ function getPlayerFromDB(pdgaNumber) {
|
|||||||
function savePlayerToDB(playerData) {
|
function savePlayerToDB(playerData) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
db.run(
|
db.run(
|
||||||
`INSERT OR REPLACE INTO players (pdga_number, name, current_rating, rating_change, last_updated)
|
// UPSERT (not INSERT OR REPLACE): updating in place preserves columns not
|
||||||
VALUES (?, ?, ?, ?, datetime('now'))`,
|
// listed here — predicted_rating, std_dev, last_round_update,
|
||||||
|
// excluded_rounds_count, cutoff_rating. INSERT OR REPLACE would delete the
|
||||||
|
// existing row and reset those to their DEFAULT (NULL).
|
||||||
|
`INSERT INTO players (pdga_number, name, current_rating, rating_change, last_updated)
|
||||||
|
VALUES (?, ?, ?, ?, datetime('now'))
|
||||||
|
ON CONFLICT(pdga_number) DO UPDATE SET
|
||||||
|
name = excluded.name,
|
||||||
|
current_rating = excluded.current_rating,
|
||||||
|
rating_change = excluded.rating_change,
|
||||||
|
last_updated = excluded.last_updated`,
|
||||||
[playerData.pdgaNumber, playerData.name, playerData.rating, playerData.ratingChange],
|
[playerData.pdgaNumber, playerData.name, playerData.rating, playerData.ratingChange],
|
||||||
function(err) {
|
function(err) {
|
||||||
if (err) reject(err);
|
if (err) return reject(err);
|
||||||
else resolve(this.lastID);
|
// node-sqlite3 leaves lastID = 0 when ON CONFLICT triggers an UPDATE.
|
||||||
|
// Fall back to a SELECT to get the real id in that case.
|
||||||
|
if (this.lastID !== 0) return resolve(this.lastID);
|
||||||
|
db.get('SELECT id FROM players WHERE pdga_number = ?', [playerData.pdgaNumber], (err2, row) => {
|
||||||
|
if (err2) reject(err2);
|
||||||
|
else resolve(row ? row.id : 0);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user