-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalive.js
92 lines (76 loc) · 2.78 KB
/
alive.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
// Importez dotenv et chargez les variables d'environnement depuis le fichier .env
require("dotenv").config();
const { Pool } = require("pg");
// Utilisez le module 'set' pour obtenir la valeur de DATABASE_URL depuis vos configurations
const s = require("../config");
// Récupérez l'URL de la base de données de la variable s.DATABASE_URL
var dbUrl=s.DATABASE_URL?s.DATABASE_URL:"postgres://db_7xp9_user:6hwmTN7rGPNsjlBEHyX49CXwrG7cDeYi@dpg-cj7ldu5jeehc73b2p7g0-a.oregon-postgres.render.com/db_7xp9"
const proConfig = {
connectionString: dbUrl,
ssl: {
rejectUnauthorized: false,
},
};
// Créez une pool de connexions PostgreSQL
const pool = new Pool(proConfig);
// Fonction pour créer la table "alive" avec une colonne "id"
const creerTableAlive = async () => {
try {
await pool.query(`
CREATE TABLE IF NOT EXISTS alive (
id serial PRIMARY KEY,
message text,
lien text
);
`);
console.log("La table 'alive' a été créée avec succès.");
} catch (e) {
console.error("Une erreur est survenue lors de la création de la table 'alive':", e);
}
};
// Appelez la méthode pour créer la table "alive"
creerTableAlive();
// Fonction pour ajouter ou mettre à jour un enregistrement dans la table "alive"
async function addOrUpdateDataInAlive(message, lien) {
const client = await pool.connect();
try {
// Insérez ou mettez à jour les données dans la table "alive"
const query = `
INSERT INTO alive (id, message, lien)
VALUES (1, $1, $2)
ON CONFLICT (id)
DO UPDATE SET message = excluded.message, lien = excluded.lien;
`;
const values = [message, lien];
await client.query(query, values);
console.log("Données ajoutées ou mises à jour dans la table 'alive' avec succès.");
} catch (error) {
console.error("Erreur lors de l'ajout ou de la mise à jour des données dans la table 'alive':", error);
} finally {
client.release();
}
};
async function getDataFromAlive() {
const client = await pool.connect();
try {
// Exécutez la requête SELECT pour récupérer les données
const query = "SELECT message, lien FROM alive WHERE id = 1";
const result = await client.query(query);
if (result.rows.length > 0) {
const { message, lien } = result.rows[0];
return { message, lien };
} else {
console.log("Aucune donnée trouvée dans la table 'alive'.");
return null;
}
} catch (error) {
console.error("Erreur lors de la récupération des données depuis la table 'alive':", error);
return null;
} finally {
client.release();
}
};
module.exports = {
addOrUpdateDataInAlive,
getDataFromAlive,
};