From 48cdf694b5504ff78b7ca0571378b76ac28ac533 Mon Sep 17 00:00:00 2001 From: daniel muniz Date: Wed, 5 Jun 2024 21:18:36 -0300 Subject: [PATCH] implementing use cases --- src/app.js | 14 +++++++--- src/use-cases/category-converter-use-case.js | 4 +-- src/use-cases/get-category-use-case.js | 29 ++++++++++---------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/app.js b/src/app.js index e1a3b65..f5defa5 100644 --- a/src/app.js +++ b/src/app.js @@ -1,10 +1,16 @@ const { GetCategoryUseCase } = require('./use-cases/get-category-use-case.js') -const categoriesMapping = require('../etc/categories-mapping.json') +const categoriesMapping = require('./etc/categories-mapping.json') +const { CategoryConverterUseCase } = require('./use-cases/category-converter-use-case.js') + +const getCategoryUseCase = new GetCategoryUseCase(); + +(async () => { + const categoryId = await getCategoryUseCase.execute() + console.log(categoryId) +})() - - -const getCategoryUseCase = new GetCategoryUseCase({categoriesMapping}) +// const categoryConverter = new CategoryConverterUseCase({ categoriesMapping }) getCategoryUseCase.execute('utorrent.com') \ No newline at end of file diff --git a/src/use-cases/category-converter-use-case.js b/src/use-cases/category-converter-use-case.js index ed6ede4..f855f78 100644 --- a/src/use-cases/category-converter-use-case.js +++ b/src/use-cases/category-converter-use-case.js @@ -1,6 +1,6 @@ class CategoryConverterUseCase { - constructor(categoriesMapping) { + constructor({categoriesMapping}) { this.categoriesMapping = categoriesMapping } @@ -9,4 +9,4 @@ class CategoryConverterUseCase { } } -module.export = { CategoryConverterUseCase } \ No newline at end of file +module.exports = { CategoryConverterUseCase } \ No newline at end of file diff --git a/src/use-cases/get-category-use-case.js b/src/use-cases/get-category-use-case.js index 24fb16a..ccbb022 100644 --- a/src/use-cases/get-category-use-case.js +++ b/src/use-cases/get-category-use-case.js @@ -1,25 +1,26 @@ const { exec } = require("node:child_process") class GetCategoryUseCase { - constructor({categoriesMapping}) { - this.categoriesMapping = categoriesMapping - } - execute(domain) { - exec(`echo ${domain} | bin/gcf1check.sh etc check_categorize_hybrid`, { cwd: '/usr/local/gcf1' }, (error, stdout, stderr)=>{ - if (error) { - console.error(error) - return - } + return new Promise((resolve, reject) => { + exec(`echo ${domain} | bin/gcf1check.sh etc check_categorize_hybrid`, { cwd: '/usr/local/gcf1' }, (error, stdout, stderr) => { + if (error) { + console.error(error); + reject(error); + return; + } - const outputParts = stdout.split(/\s+/); // Split by whitespace - if (outputParts[3]) { + const outputParts = stdout.split(/\s+/); + if (outputParts[3]) { const categoryId = outputParts[2]; console.log({ categoryId }); - } else { + resolve(categoryId); + } else { console.log({ error: 'Category ID not found' }); - } - }) + reject('Category ID not found'); + } + }); + }); } }