Fixing mariadb connection and deactivating script CD
continuous-integration/drone/push Build is passing Details

main
Félix MIELCAREK 11 months ago
parent f3451dab1e
commit 02b898a7ec

@ -4,56 +4,88 @@ name: BB_PIPELINE
steps: steps:
# - name: deploy-container-db - name: deploy-container-db
# image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
# environment: environment:
# IMAGENAME: mariadb:10 IMAGENAME: mariadb:10
# CONTAINERNAME: bigbrotherdb CONTAINERNAME: bigbrotherdb
# COMMAND: create COMMAND: create
# OVERWRITE: false OVERWRITE: false
# PRIVATE: true PRIVATE: true
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD: CODEFIRST_CLIENTDRONE_ENV_MARIADB_ROOT_PASSWORD:
# from_secret: db_root_password from_secret: db_root_password
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE: CODEFIRST_CLIENTDRONE_ENV_MARIADB_DATABASE:
# from_secret: db_database from_secret: db_database
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER: CODEFIRST_CLIENTDRONE_ENV_MARIADB_USER:
# from_secret: db_user from_secret: db_user
# CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD: CODEFIRST_CLIENTDRONE_ENV_MARIADB_PASSWORD:
# from_secret: db_password from_secret: db_password
#
# - name: create-bigbrother-database - name: create-bigbrother-database
# image: python:latest image: python:latest
# commands: commands:
# - cd database/ - cd database/
# - pip3 install mariadb - pip3 install mariadb
# - python3 db-creation.py - python3 db-creation.py
# environment: environment:
# MARIADB_USER: MARIADB_USER:
# from_secret: db_user from_secret: db_user
# MARIADB_PASSWORD: MARIADB_PASSWORD:
# from_secret: db_password from_secret: db_password
# MARIADB_DATABASE: MARIADB_DATABASE:
# from_secret: db_database from_secret: db_database
# depends_on: [ deploy-container-db ] depends_on: [ deploy-container-db ]
#
# - name: build-image-server - name: build-image-server
image: plugins/docker
settings:
dockerfile: callback-server/Dockerfile
context: ./
registry: hub.codefirst.iut.uca.fr
repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
depends_on: [ create-bigbrother-database ]
- name: deploy-container-server
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
environment:
IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server:latest
CONTAINERNAME: bigbrotherserver
COMMAND: create
OVERWRITE: true
MARIADB_USER:
from_secret: db_user
MARIADB_PASSWORD:
from_secret: db_password
MARIADB_DATABASE:
from_secret: db_database
CLIENT_ID:
from_secret: spotify_client_id
CLIENT_SECRET:
from_secret: spotify_client_id
depends_on: [ build-image-server ]
# - name: build-image-script
# image: plugins/docker # image: plugins/docker
# settings: # settings:
# dockerfile: callback-server/Dockerfile # dockerfile: script/Dockerfile
# context: ./ # context: ./
# registry: hub.codefirst.iut.uca.fr # registry: hub.codefirst.iut.uca.fr
# repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server # repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother
# username: # username:
# from_secret: SECRET_REGISTRY_USERNAME # from_secret: SECRET_REGISTRY_USERNAME
# password: # password:
# from_secret: SECRET_REGISTRY_PASSWORD # from_secret: SECRET_REGISTRY_PASSWORD
# depends_on: [ create-bigbrother-database ] # depends_on: [ create-bigbrother-database ]
# #
# - name: deploy-container-server # - name: deploy-container-script
# image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest # image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
# environment: # environment:
# IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother-server:latest # IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother:latest
# CONTAINERNAME: bigbrotherserver # CONTAINERNAME: bigbrotherscript
# COMMAND: create # COMMAND: create
# OVERWRITE: true # OVERWRITE: true
# MARIADB_USER: # MARIADB_USER:
@ -66,36 +98,4 @@ steps:
# from_secret: spotify_client_id # from_secret: spotify_client_id
# CLIENT_SECRET: # CLIENT_SECRET:
# from_secret: spotify_client_id # from_secret: spotify_client_id
# depends_on: [ build-image-server ] # depends_on: [ build-image-script ]
- name: build-image-script
image: plugins/docker
settings:
dockerfile: script/Dockerfile
context: ./
registry: hub.codefirst.iut.uca.fr
repo: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
#depends_on: [ create-bigbrother-database ]
- name: deploy-container-script
image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
environment:
IMAGENAME: hub.codefirst.iut.uca.fr/felix.mielcarek/big-brother:latest
CONTAINERNAME: bigbrotherscript
COMMAND: create
OVERWRITE: true
MARIADB_USER:
from_secret: db_user
MARIADB_PASSWORD:
from_secret: db_password
MARIADB_DATABASE:
from_secret: db_database
CLIENT_ID:
from_secret: spotify_client_id
CLIENT_SECRET:
from_secret: spotify_client_id
depends_on: [ build-image-script ]

@ -20,15 +20,15 @@ app.listen(port, () => { console.log(`Big brother is listening on port ${port}`)
//#region ACCESS TOKEN //#region ACCESS TOKEN
app.get('/settings/deactivate', async (req,res) => { app.get('/settings/deactivate', async (req,res) => {
const client = mariadb.createPool({ const code = req.query.code;
const pool = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb', host: 'felixmielcarek-bigbrotherdb',
user: process.env.MARIADB_USER, user: process.env.MARIADB_USER,
database: process.env.MARIADB_DATABASE, database: process.env.MARIADB_DATABASE,
password: process.env.MARIADB_PASSWORD password: process.env.MARIADB_PASSWORD
}); });
const code = req.query.code;
var authOptions = { var authOptions = {
url: 'https://accounts.spotify.com/api/token', method: 'post', json: true, url: 'https://accounts.spotify.com/api/token', method: 'post', json: true,
data: { code: code, redirect_uri: redirectUri, grant_type: 'authorization_code' }, data: { code: code, redirect_uri: redirectUri, grant_type: 'authorization_code' },
@ -41,29 +41,30 @@ app.get('/settings/deactivate', async (req,res) => {
const response1 = await axios(authOptions); const response1 = await axios(authOptions);
const accessToken = response1.data.access_token const accessToken = response1.data.access_token
let conn;
try { try {
conn = await pool.getConnection()
const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } }); const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } });
await client.getConnection()
const sqlQuery = ` const sqlQuery = `
DELETE FROM users DELETE FROM users
WHERE spotifyid = ?; WHERE spotifyid = ?;
`; `;
client.query(sqlQuery, [response2.data.SpotifyId], (err, res) => { conn.query(sqlQuery, [response2.data.SpotifyId], (err, res) => {
if (err) { if (err) {
console.error('Error executing query', err); console.error('Error executing query', err);
return; return;
} }
console.log('Data deleted successfully'); console.log('Data deleted successfully');
client.end(); conn.end();
}); });
} catch (error) { console.log('Error getting user Spotify id') } } catch (error) { console.log('Error getting user Spotify id') }
}) })
app.get('/', async (req, res) => { app.get('/', async (req, res) => {
const client = mariadb.createPool({ const pool = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb', host: 'felixmielcarek-bigbrotherdb',
user: process.env.MARIADB_USER, user: process.env.MARIADB_USER,
database: process.env.MARIADB_DATABASE, database: process.env.MARIADB_DATABASE,
@ -85,7 +86,11 @@ app.get('/', async (req, res) => {
const accessToken = response1.data.access_token const accessToken = response1.data.access_token
const refreshToken = response1.data.refresh_token const refreshToken = response1.data.refresh_token
let conn;
try { try {
conn = await pool.getConnection()
const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } }); const response2 = await axios.get(`https://api.spotify.com/v1/me`, { headers: { 'Authorization': 'Bearer ' + accessToken, } });
const data = { const data = {
@ -94,8 +99,6 @@ app.get('/', async (req, res) => {
RefreshToken: refreshToken RefreshToken: refreshToken
}; };
await client.getConnection()
const sqlQuery = ` const sqlQuery = `
INSERT INTO users (spotifyid, accesstoken, refreshtoken) INSERT INTO users (spotifyid, accesstoken, refreshtoken)
VALUES (?, ?, ?) VALUES (?, ?, ?)
@ -104,13 +107,13 @@ app.get('/', async (req, res) => {
refreshtoken = VALUES(refreshtoken); refreshtoken = VALUES(refreshtoken);
`; `;
client.query(sqlQuery, [data.SpotifyId, data.AccessToken, data.RefreshToken], (err, res) => { conn.query(sqlQuery, [data.SpotifyId, data.AccessToken, data.RefreshToken], (err, res) => {
if (err) { if (err) {
console.error('Error executing query', err); console.error('Error executing query', err);
return; return;
} }
console.log('Data inserted/updated successfully'); console.log('Data inserted/updated successfully');
client.end(); conn.end();
}); });
} catch (error) { console.log('Error getting user Spotify id') } } catch (error) { console.log('Error getting user Spotify id') }
}); });

@ -8,12 +8,6 @@ const spotifyRequestsLimit = 50;
const thresholdLove = 0.6; const thresholdLove = 0.6;
const clientId = process.env.CLIENT_ID; const clientId = process.env.CLIENT_ID;
const clientSecret = process.env.CLIENT_SECRET; const clientSecret = process.env.CLIENT_SECRET;
const client = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb',
user: process.env.MARIADB_USER,
database: process.env.MARIADB_DATABASE,
password: process.env.MARIADB_PASSWORD
});
//#endregion //#endregion
//#region STRUCTURE //#region STRUCTURE
@ -176,11 +170,20 @@ async function mainAlgorithm(accessToken) {
} }
async function main() { async function main() {
await client.getConnection(); const pool = mariadb.createPool({
host: 'felixmielcarek-bigbrotherdb',
user: process.env.MARIADB_USER,
database: process.env.MARIADB_DATABASE,
password: process.env.MARIADB_PASSWORD
});
try { try {
conn = await pool.getConnection();
const selectQuery = 'SELECT * FROM users'; const selectQuery = 'SELECT * FROM users';
const selectResult = await client.query(selectQuery); const selectResult = await conn.query(selectQuery);
for(let row of selectResult.rows) { for(let row of selectResult.rows) {
const spotifyId = row.spotifyid; const spotifyId = row.spotifyid;
@ -209,11 +212,11 @@ async function main() {
SET accesstoken = ?, refreshtoken = ? SET accesstoken = ?, refreshtoken = ?
WHERE spotifyid = ?; WHERE spotifyid = ?;
`; `;
await client.query(updateQuery, [spotifyId, newAccessToken, newRefreshToken]) await conn.query(updateQuery, [spotifyId, newAccessToken, newRefreshToken])
await mainAlgorithm(newAccessToken); await mainAlgorithm(newAccessToken);
} }
} catch (error) { console.error('Error executing select query:', error) } finally { await client.end() } } catch (error) { console.error('Error executing select query:', error) } finally { await conn.end() }
} }
//#endregion //#endregion

Loading…
Cancel
Save