|
1 | 1 | import Colors from "cli-color"; |
| 2 | +import { readdirSync } from "fs"; |
2 | 3 |
|
3 | 4 | /* eslint-disable class-methods-use-this */ |
4 | 5 | class Helper { |
5 | 6 | // Propiedad privada |
6 | 7 | static #instanceClass = null; |
7 | 8 |
|
8 | | - /** |
9 | | - * Permite conseguir los parametros que son enviados a las consultas. |
10 | | - * |
11 | | - * @param {Express} request Objeto referen te a expess. |
12 | | - * |
13 | | - * @returns {void}. |
14 | | - */ |
15 | | - prepareSetting(request) { |
16 | | - const { body = {}, params } = request; |
17 | | - const { field = "" } = params; |
18 | | - params.field = (/_?id/.test(field)) ? "_id" : field; |
19 | | - if (params.Model === "pokemon" && !body.img) { |
20 | | - const { name = "default" } = body; |
21 | | - const IMG = this.formatString(name); |
22 | | - body.img = `${process.env.HOST}/pokemons/${IMG}.jpg`; |
23 | | - } |
24 | | - const setting = { body, Model: params.Model }; |
25 | | - delete params.Model; |
26 | | - return { setting, ...params }; |
27 | | - } |
28 | | - |
29 | 9 | /** |
30 | 10 | * Permite manejar el error 404 |
31 | 11 | * |
@@ -101,6 +81,26 @@ class Helper { |
101 | 81 | response.setHeader("Cache-Control", `max-age=${ttl}`); |
102 | 82 | } |
103 | 83 |
|
| 84 | + /** |
| 85 | + * Permite listar los modelos referentes a las colecciones disponibles. |
| 86 | + * |
| 87 | + * @param {String} path Ruta de donde se pueden cargar los modelos. |
| 88 | + * @param {String} host Url del host donde se esta probando. |
| 89 | + * |
| 90 | + * @return {Object}. |
| 91 | + */ |
| 92 | + listModels(path, host, readme) { |
| 93 | + const CONTENT = readdirSync(path); |
| 94 | + const models = CONTENT.reduce((list, file) => { |
| 95 | + if (file !== "index.js") { |
| 96 | + const MODEL = file.replace(/\..*/g, ""); |
| 97 | + list[MODEL] = `${host}/${MODEL}/all`; |
| 98 | + } |
| 99 | + return list; |
| 100 | + }, {}); |
| 101 | + return { readme, models }; |
| 102 | + } |
| 103 | + |
104 | 104 | /** |
105 | 105 | * Permite el envio de mensajes |
106 | 106 | * |
@@ -148,6 +148,27 @@ class Helper { |
148 | 148 | console.log(log(` [${msg}] => ${auxText}`)); // eslint-disable-line |
149 | 149 | } |
150 | 150 |
|
| 151 | + /** |
| 152 | + * Permite conseguir los parametros que son enviados a las consultas. |
| 153 | + * |
| 154 | + * @param {Express} request Objeto referen te a expess. |
| 155 | + * |
| 156 | + * @returns {void}. |
| 157 | + */ |
| 158 | + prepareSetting(request) { |
| 159 | + const { body = {}, params } = request; |
| 160 | + const { field = "" } = params; |
| 161 | + params.field = (/_?id/.test(field)) ? "_id" : field; |
| 162 | + if (params.Model === "pokemon" && !body.img) { |
| 163 | + const { name = "default" } = body; |
| 164 | + const IMG = this.formatString(name); |
| 165 | + body.img = `${process.env.HOST}/pokemons/${IMG}.jpg`; |
| 166 | + } |
| 167 | + const setting = { body, Model: params.Model }; |
| 168 | + delete params.Model; |
| 169 | + return { setting, ...params }; |
| 170 | + } |
| 171 | + |
151 | 172 | /** |
152 | 173 | * Permite conseguir una instancia de la clase. |
153 | 174 | * |
|
0 commit comments