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, + ); + } +}