implementing use cases

This commit is contained in:
daniel muniz
2024-06-05 21:18:36 -03:00
parent aca3a58b28
commit 48cdf694b5
3 changed files with 27 additions and 20 deletions

View File

@@ -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')

View File

@@ -1,6 +1,6 @@
class CategoryConverterUseCase {
constructor(categoriesMapping) {
constructor({categoriesMapping}) {
this.categoriesMapping = categoriesMapping
}
@@ -9,4 +9,4 @@ class CategoryConverterUseCase {
}
}
module.export = { CategoryConverterUseCase }
module.exports = { CategoryConverterUseCase }

View File

@@ -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');
}
});
});
}
}