JCN-153 Obtener Database de un Cliente #4
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
JCN-151-OBTENER-DATABASE-DE-UN-CLIENTE
JCN 153 obtener database de un cliente
LINK AL TICKET
https://fizzmod.atlassian.net/browse/JCN-153
DESCRIPCIÓN DEL REQUERIMIENTO
1.1. Agregar método getDatabaseByClient() que reciba un object client, el boolean opcional useReadDB y prepare la config.
1.2. Eliminar la validación actual de la config (campos type, host, database)
1.3. Para poder definir qué Driver de DB utilizar, se deberán leer 2 nuevas settings del MS: databaseWriteType y databaseReadType, siendo databaseReadType opcional (utilizar databaseWriteType como databaseReadType)
1.4. Se deberá seguir leyendo y validando el campo type para las configs que existan en las settings database (caso de uso para las DB core, que definen su type), en caso de no encontrar ese type,. utilizar de default lo definido en el punto 1.3.
1.5. Eliminar Drivers hardcodeados y dejar libre a cualquier type futuro.
1.6. Se deberá realizar un nuevo mapeo de campos para obtener la configuración que cada db driver necesita.
1.6.1. Agregar settings clients.database.fields.write y clients.database.fields.read (opcional) como un objects que tengan los nombres de los campos que están en los clientes y que el driver necesita para configurarse. Esto se hace para continuar teniendo libertad de configuración.
1.6.2. clients.database.fields.write y clients.database.fields.read serán objects, en las keys estarán los campos que deben estar presentes en cada object client y en los values, el nombre del campo de configuración que necesita el DB Driver.
1.7. Eliminar posibilidad de configurar DB en variables de entorno.
DESCRIPCIÓN DE LA SOLUCIÓN
Se realizaron los requerimientos solicitados. Se eliminó la posibilidad de obtener los Drivers desde las variables de entorno, y los drivers hardcodeados, asi como las validaciones de database y host. Se agregó la posiblidad de obtener un Driver por Cliente, para escritura (siendo la posiblidad default) y lectura, y un mappeo de campos del cliente para armar las configuraciones. Se cambió la forma de cachear instancias pasando a usar MD5.