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

crashlytics core data validation was updated #4

Conversation

GonzaFran
Copy link

@GonzaFran GonzaFran commented Mar 25, 2024

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 y validateCoreData.
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:

  • 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 validació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 catchdel 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).

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 por tcode ya que este último valor es el nombre del cliente, aparte de que es no solemos utilizar el tname

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.

Esta ok 👍

Peek 2024-03-26 13-12

@christian97dd christian97dd merged commit 9b6bab3 into release/APPSRN-289-mejoras-en-datos-core-para-crashlytics Apr 3, 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

5 participants