Release/appsrn 289 mejoras en datos core para crashlytics #6
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 SUBTAREA:
https://janiscommerce.atlassian.net/browse/APPSRN-289
DESCRIPCIÓN DEL REQUERIMIENTO: *
CONTEXTO
Actualmente, en los registros de crashlytics se está recibiendo la información de las claves mencionadas en los criterios de aceptación, pero no estamos validando la existencia de esta data antes de enviarlos, por lo que, en caso de que alguno no exista, directamente no es enviado, lo que puede ocasionar que se filtre información relevante para ayudar a resolver los problemas que el usuario pueda tener con la app.
NECESIDAD
Tenemos que validar esta data antes de enviarla para que, en caso de que no haya sido obtenida, tratar de conseguirla para mantener los registros lo más completos posibles.
DESCRIPCIÓN DE LA SOLUCIÓN: *
Se instalaron los packages de:
@janiscommrece/app-device-info
react-native-community/netInfo
Estos packages nos sirven para obtener información referente al estado de conexión a internet y datos sobre el celular del usuario.
Lo que hicimos fue modificar el método initialize de crashlytics para que, cada vez que sea llamado, se obtenga el tipo de conexión que usa el usuario para operar y el id único del dispositivo. Esto se hace con los métodos getNetworkState, que obtiene un objeto con el estado de la conexión a internet, y getUniqueId que obtiene el string que representa este id.
Para que se valide la existencia de estos datos antes de mandar cada registro a la consola de crash, lo que hicimos fue: agregar las claves connection y deviceId al array de datos core para que, cada vez que se llame el método initialize, se corrobore que estos datos ya estén fueron obtenidos y que serán parte de los registros de crashlytics.
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:
Elegir una pantalla de la app (notificaciones está bien).
Generar una nueva instancia de crashlytics importando la clase desde el package.
Agregar este código en pantalla (controlar las importaciones) :
Ir a la carpeta .yalc que debería haberse generado cuando se hizo la vinculación y entrar en el archivo crashlytics.js
En el método ìnitialize` agregar, antes de la obtención del estado de conexión, una linea que haga este cambio:
Agregar un console.log para this.userData antes del inicio del bloque catch del método para corroborar que los valores se obtuvieron y que fueron asignados al objeto userData.
Puede hacer la prueba eliminando la linea que agregamos antes de la validación para ver si se vuelve a obtener la data de oatuh o no (tenga en cuenta que, si no se llama al console.log que se encuentra antes del catch, esto significa que no fue necesario volver a obtener la data).
SCREENSHOTS:
DATOS EXTRA A TENER EN CUENTA:
CHANGELOG: