Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release/appsrn 289 mejoras en datos core para crashlytics #6

Merged

Conversation

GonzaFran
Copy link

@GonzaFran GonzaFran commented Apr 9, 2024

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) :

<View>
	<Button
		title="Test userData"
		onPress={() => {
			crashlytics.log('this is test error');
          }}/> 
</View>

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:

this.userData = {} //esto lo hacemos así para forzar a la clase a que obtenga nuevamente la data de oauth.

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:

###Added
- Added device id and connection type to analytics tracking data. [APPSRN-281] (https://janiscommerce.atlassian.net/browse/APPSRN-281)

Gonzalo Lopez and others added 4 commits March 25, 2024 15:44
Copy link

@dam788 dam788 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Anduvo ok. Dejo la data que recibi:

{
   "client":"fizzmodarg",
   "connection":"wifi",
   "currency":"ARS",
   "deviceId":"4182ab98e0ca76e6",
   "isDev":true,
   "language":"en-US",
   "userEmail":"damian.morales@janis.im",
   "userId":"63778aebabe1ff4a45824870",
   "userName":"Damian",
   "userSurname":"Morales"
}

@christian97dd christian97dd merged commit 76b9e84 into master Apr 10, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants