crashlytics core data validation was updated #4
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.
LINK DE TICKET: *
https://janiscommerce.atlassian.net/browse/APPSRN-281
LINK DE LA SUBTAREA:
https://janiscommerce.atlassian.net/browse/APPSRN-288
DESCRIPCIÓN DEL REQUERIMIENTO: *
CONTEXTO
Actualmente, la data que estamos enviando a crashlytics está llegando correctamente y cuenta con la información solicitada. Sin embargo, esta info no está siendo validada en ninguna parte de la ejecución, por lo que puede perderse información que consideramos importante.
NECESIDAD
Hay que agregar las validaciones necesarias para que, antes de cada ejecución de algún método, se corrobore que la clase cuenta con toda la data indispensable y, en caso de que no sea así, ejecutar la función encargada de obtenerla
DESCRIPCIÓN DE LA SOLUCIÓN: *
Se agregó la carpeta constants con el archivo
coreData.js
que tiene un array de strings con los nombres de las keys definidas como datos CORE, que luego usaremos en las validaciones.Se cambiaron las validaciones que se realizaban en el método initialize de crashlytics; para hacer esto agregamos las utils
valueIsValidType
,includesAllProperties
yvalidateCoreData
.La más importante es la última, que es la que se encarga de validar que un objeto recibido por parametro contenga todos los datos CORE que necesitamos enviar a crashlytics. En caso de que las contenga la utils devolverá un TRUE, pero sino será FALSE.
Esta utils es la que, a partir de ahora, vamos a usar en el método
initialize
para decidir si es necesario, o no, volver a obtener la data del usuario desde la librería de oauth.Esto se hizo así para asegurarnos de que, en caso de que un dato relevante para los informes no se encuentre disponible, volvamos a obtener todos los datos y reducir la posibilidad de que los registros en crashlytics queden incompletos. También hace más sencillo agregar y validar data CORE, ya que sólo tendríamos que modificar el array con las claves.
CÓMO SE PUEDE PROBAR? *
Vincular la dependencia con yalc al repo en el que se quiera probar el código.
La forma facil sería esta:
crashlytics.js
catch
del método para corroborar que los valores se obtuvieron y que fueron asignados al objeto userData.DATOS EXTRA A TENER EN CUENTA:
Se tuvieron que hacer modificaciones en el eslint y devDependencies del package porque no se podía ejecutar el script validate:code por problemas de eslint.
Se reemplazó el valor de
tname
portcode
ya que este último valor es el nombre del cliente, aparte de que es no solemos utilizar eltname