From a934af3391a96d43284cda2a7dae897004e73e9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20Debr=C3=A9e?= Date: Thu, 7 Sep 2023 12:46:32 +0200 Subject: [PATCH] Bad example for Single Responsability Principle --- src/application.ts | 16 +++++++++++++++- src/article.ts | 21 +++++++++++++++++++++ src/database.ts | 12 ++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/article.ts create mode 100644 src/database.ts diff --git a/src/application.ts b/src/application.ts index e97170f..ae9f1e2 100644 --- a/src/application.ts +++ b/src/application.ts @@ -1,5 +1,19 @@ +import Article from './article'; + export default class Application { run(): number { - return 0 + try { + const article = new Article('Mon premier article'); + + article.saveInDatabase(); + + const json = article.exportToJson(); + console.log('Mon JSON à renvoyer depuis mon API : ', json); + + return 0; + } catch (error) { + console.error(error); + return 1; + } } } diff --git a/src/article.ts b/src/article.ts new file mode 100644 index 0000000..f052d9b --- /dev/null +++ b/src/article.ts @@ -0,0 +1,21 @@ +import Database from './database'; + +type ArticleJson = { + title: string; +}; + +export default class Article { + constructor(private title: string) {} + + private database = new Database(); + + saveInDatabase(): void { + this.database.save({ title: this.title }, 'articles'); + } + + exportToJson(): ArticleJson { + return { + title: this.title, + }; + } +} diff --git a/src/database.ts b/src/database.ts new file mode 100644 index 0000000..21d37ad --- /dev/null +++ b/src/database.ts @@ -0,0 +1,12 @@ +export default class Database { + constructor() { + console.log('On ouvre une connection à notre base de données MySQL'); + } + + save(rowData: any, table: string): void { + console.log( + `On enregistre cette nouvelle donnée dans la table "${table}" de notre base de données MySQL`, + rowData, + ); + } +}