delete table language + delete getLastLinkWorkByUSerId
continuous-integration/drone/push Build is passing Details
continuous-integration/drone/pr Build is passing Details

pull/3/head
Matis MAZINGUE 10 months ago
parent e900312cd7
commit 1240b3ebe7

@ -91,7 +91,6 @@ export function closeDatabase(db: sqlite3.Database) {
/* Create all the tables in the database */
export function createTables(db: sqlite3.Database) {
createRegisteredUserTable(db);
createLanguageTable(db);
createWorkTable(db);
}
@ -215,87 +214,12 @@ export function selectUserById(db: sqlite3.Database, id: number) {
return getDB(db, selectUserByIdQuery, [id]);
}
/////////////////////////// Gestion des Languages ///////////////////////////
// CREATE TABLE language (
// id_language SERIAL PRIMARY KEY,
// designation VARCHAR(30) NOT NULL,
// version INT NOT NULL,
// );
/* Créer la table language dans la base de données */
export function createLanguageTable(db: sqlite3.Database): Promise<void> {
const tableLanguage =
`CREATE TABLE IF NOT EXISTS language (id_language INTEGER PRIMARY KEY AUTOINCREMENT, designation TEXT NOT NULL, version INTEGER NOT NULL)`;
return runDB(db, tableLanguage, []);
}
/* Insérer un language dans la table language */
export function insertLanguage(
db: sqlite3.Database,
designation: string,
version: number,
) {
const insertLanguageQuery = `INSERT INTO language (designation, version) VALUES (?, ?)`;
return runDB(db, insertLanguageQuery, [designation, version]);
}
/* Modifier la designation d'un language dans la table language */
export function updateLanguageDesignation(
db: sqlite3.Database,
id: number,
newDesignation: string,
) {
const updateLanguageDesignationQuery = `UPDATE language SET designation = ? WHERE id_language = ?`;
return runDB(db, updateLanguageDesignationQuery, [newDesignation, id]);
}
/* Modifier la version d'un language dans la table language */
export function updateLanguageVersion(
db: sqlite3.Database,
id: number,
newVersion: number,
) {
const updateLanguageVersionQuery = `UPDATE language SET version = ? WHERE id_language = ?`;
return runDB(db, updateLanguageVersionQuery, [newVersion, id]);
}
/* Supprimer un language de la table language par son ID */
export function deleteLanguage(db: sqlite3.Database, id: number) {
const deleteLanguageQuery = `DELETE FROM language WHERE id_language = ?`;
return runDB(db, deleteLanguageQuery, [id]);
}
/* Supprimer tous les languages de la table language */
export function deleteAllLanguages(db: sqlite3.Database) {
const deleteAllLanguagesQuery = `DELETE FROM language`;
return runDB(db, deleteAllLanguagesQuery, []);
}
/* Sélectionner tous les languages de la table language */
export function selectAllLanguages(db: sqlite3.Database): Promise<unknown[]> {
const selectAllLanguagesQuery = `SELECT * FROM language`;
return allDB(db, selectAllLanguagesQuery);
}
/* Sélectionner un language par son ID */
export function selectLanguageById(db: sqlite3.Database, id: number) {
const selectLanguageByIdQuery = `SELECT * FROM language WHERE id_language = ?`;
return getDB(db, selectLanguageByIdQuery, [id]);
}
/////////////////////////// Gestion des works ///////////////////////////
// CREATE TABLE work (
// id_work SERIAL PRIMARY KEY,
// link CHAR(36) NOT NULL,
// user_id INT REFERENCES registered_user(id_user),
// language_id INT NOT NULL REFERENCES language(id_language)
// language TEXT NOT NULL,
// title VARCHAR(30) NOT NULL,
// content TEXT NOT NULL,
// date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
@ -306,7 +230,7 @@ export function createWorkTable(db: sqlite3.Database): Promise<void> {
const tableWork = `CREATE TABLE IF NOT EXISTS work (
id_work INTEGER PRIMARY KEY AUTOINCREMENT,
link CHAR(36) NOT NULL, user_id INTEGER REFERENCES registered_user(id_user),
language_id INTEGER NOT NULL REFERENCES language(id_language),
language TEXT NOT NULL,
title TEXT NOT NULL,
content TEXT NOT NULL,
date TIMESTAMP DEFAULT CURRENT_TIMESTAMP)`;
@ -318,13 +242,13 @@ export function insertWork(
db: sqlite3.Database,
link: string,
user_id: number,
language_id: number,
language: string,
title: string,
content: string,
) {
const insertWorkQuery = `INSERT INTO work (link, user_id, language_id, title, content, date) VALUES (?, ?, ?, ?, ?, ?)`;
const insertWorkQuery = `INSERT INTO work (link, user_id, language, title, content, date) VALUES (?, ?, ?, ?, ?, ?)`;
return runDB(db, insertWorkQuery, [link, user_id, language_id, title, content, new Date().toISOString()]);
return runDB(db, insertWorkQuery, [link, user_id, language, title, content, new Date().toISOString()]);
}
/* Sélectionner tous les works de la table work */
@ -359,16 +283,6 @@ export function selectLastWorkByUserId(db: sqlite3.Database, user_id: number) {
return getDB(db, selectLastWorkByUserIdQuery, [user_id]);
}
/* Sélectionner le link du dernier work par l'id de l'utilisateur */
export function selectLinkLastWorkByUserId(db: sqlite3.Database, user_id: number) {
const selectLinkLastWorkByUserIdQuery = `SELECT link FROM work
WHERE user_id = ?
ORDER BY date DESC
LIMIT 1`;
return getDB(db, selectLinkLastWorkByUserIdQuery, [user_id]);
}
/* Supprimer tous les works de la table work */
export function deleteAllWorks(db: sqlite3.Database) {
const deleteAllWorksQuery = `DELETE FROM work`;

@ -357,120 +357,6 @@ fastify.get(
},
);
/* Route pour créer un language */
fastify.post(
"/languages",
{
schema: {
body: Type.Object({
designation: Type.String(),
version: Type.Number(),
}),
},
},
async (request, reply) => {
const { designation, version } = request.body;
db.insertLanguage(database, designation, version);
reply.send({ success: true });
},
);
/* Route pour mettre à jour la désignation d'un language */
fastify.put(
"/languages/:id/designation",
{
schema: {
params: Type.Object({
id: Type.Number({
minimum: 0,
}),
}),
body: Type.Object({
newDesignation: Type.String(),
}),
},
},
async (request, reply) => {
const { id } = request.params;
const { newDesignation } = request.body;
db.updateLanguageDesignation(database, id, newDesignation);
reply.send({ success: true });
},
);
/* Route pour mettre à jour la version d'un language */
fastify.put(
"/languages/:id/version",
{
schema: {
params: Type.Object({
id: Type.Number({
minimum: 0,
}),
}),
body: Type.Object({
newVersion: Type.Number(),
}),
},
},
async (request, reply) => {
const { id } = request.params;
const { newVersion } = request.body;
db.updateLanguageVersion(database, id, newVersion);
reply.send({ success: true });
},
);
/* Route pour supprimer un language */
fastify.delete(
"/languages/:id",
{
schema: {
params: Type.Object({
id: Type.Number({
minimum: 0,
}),
}),
},
},
async (request, reply) => {
const { id } = request.params;
db.deleteLanguage(database, id);
reply.send({ success: true });
},
);
/* Route pour supprimer tous les languages */
fastify.delete("/languages", async (request, reply) => {
db.deleteAllLanguages(database);
reply.send({ success: true });
});
/* Route pour récupérer un language par son ID */
fastify.get(
"/languages/:id",
{
schema: {
params: Type.Object({
id: Type.Number({
minimum: 0,
}),
}),
},
},
async (request, reply) => {
const { id } = request.params;
const language = await db.selectLanguageById(database, id);
reply.send(language);
},
);
/* Route pour récupérer tous les languages */
fastify.get("/languages", async (request, reply) => {
const languages = await db.selectAllLanguages(database);
reply.send(languages);
});
/* Route pour créer un work */
fastify.post(
"/works",
@ -479,15 +365,15 @@ fastify.post(
body: Type.Object({
id_user: Type.Number(),
link: Type.String(),
id_language: Type.Number(),
language: Type.String(),
title: Type.String(),
code: Type.String(),
}),
},
},
async (request, reply) => {
const { id_user, link, id_language, title, code } = request.body;
await db.insertWork(database, link, id_user, id_language, title, code);
const { id_user, link, language, title, code } = request.body;
await db.insertWork(database, link, id_user, language, title, code);
reply.send({ success: true });
},
);
@ -561,25 +447,6 @@ fastify.get(
},
);
/* Route pour récupérer le dernier work par l'id de l'utilisateur */
fastify.get(
"/works/last-link/:user_id",
{
schema: {
params: Type.Object({
user_id: Type.Number({
minimum: 0,
}),
}),
},
},
async (request, reply) => {
const { user_id } = request.params;
const linkWork = await db.selectLinkLastWorkByUserId(database, user_id);
reply.send(linkWork);
},
);
/* Update the work title by its ID */
fastify.put(
"/works/:id/title",

Loading…
Cancel
Save