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

added additionalInfo and updateSuscription method #5

Conversation

GonzaFran
Copy link
Contributor

LINK DE TICKET:
https://janiscommerce.atlassian.net/browse/APPSRN-315

LINK DE SUBTAREA:
https://janiscommerce.atlassian.net/browse/APPSRN-317

DESCRIPCIÓN DEL REQUERIMIENTO:

Contexto

Contamos con el pkg para administrar las notificaciones en cada app y esta faltando que el mismo, pueda recibir informacion adiciones como tambien canales a usar en las subscripciones. Los canales nos permite poder mostrar las notificaciones cuando la app esta en segundo plano y la informacion adicional, es necesaria para poder enviar las notificaciones segun ciertos criterios.

Por ejemplo, un dato adicional que hay que enviar ante cada suscripcion seria el warehouse activo para que el usuario estando en Palermo, no reciba notificaciones que correspondan a una sesion de Belgrano

Necesidad

Que el provider del pkg, reciba información adicional y canales. En caso de recibirlos, debe subscribirse con dicha informacion

DESCRIPCIÓN DE LA SOLUCIÓN:

Se agregó, en el NotificationProvider, una prop más que es additionalInfo. Esta prop espera un objeto que se usará dentro del body para la suscripción al servicio de notificaciones.

Además, se hizo una nueva util que se puede obtener desde el hook usePushNotification que es updateSuscription. Esta util le pega a la api de suscripción para actualizar la data y también puede recibir un objeto que se enviará como parte de la información a actualizar (Esto va a servir para, por ejemplo, actualizar la data del lenguaje para las notificaciones que se enviará al usuario).

¿CÓMO SE PUEDE PROBAR?

Para facilitar la prueba, esto va a convenir hacerlo en picking porque su evento en beta ya está preparado.

Hay que vincular el package con yalc y después npm install (-f si es necesario)

Luego, en la main, hay que agregar al NotificationProvider la prop additionalInfo :

<NotificationProvider
			appName="PickingApp"
			environment={JANIS_ENV}
			events={eventsToSuscribe}
			additionalInfo={{
				language: selectedLanguage,
					}}>

Esta configuración es la que, cuando se realice la sucripción, back usará para asignar el idioma en que serán enviadas las notificaciones. (En views se puede ver cuáles son los idiomas en los que se puede enviar la notificación https://app.janisdev.in/notification/default-event/edit/6662190b0389e407bb7b7101#translations)

Ahora, hay que asignarse como picker de una sesión y esperar la notificación y validar que llegue en el idioma que fue seleccionado.

CAMBIO DE IDIOMA

Lo otro que habría que probar es cómo impacta el cambio de idioma desde la app en la notificación; Para esto hay que usar la util updateSuscription de usePushNotification.

Para esto, agregue en la home lo siguiente:

En el import:

import { selectUserLanguage } from 'src/redux/account/selectors/selectUserLanguage';
import {usePushNotification} from '@janiscommerce/app-push-notification'

Agregar las siguientes constantes dentro de la home:

const selectedLanguage = selectUserLanguage(reduxState);
const {updateSuscription} = usePushNotification()

También hay que agregar esta función y este useFocusEffect:

const updateNotificationSubscribe = async () => {
	const [response, error] = await promiseWrapper(updateSuscription({
		language: selectedLanguage,
	}))

	if(error) return null;

	console.log('response', response)
}

	useFocusEffect(
		useCallback(() => {
			updateNotificationSubscribe()
		},[selectedLanguage])
	);

Luego de haber hecho todo esto hay que ir al menú de usuario y cambiarse el idioma seleccionado. Una vez hecho esto hay que volver a mandarse una notificación (reasignese la misma sesión que uso en el caso anterior) y corroborar que la notificación llegue en el idioma esperado.

SCREENSHOTS:
Captura desde 2024-06-12 11-54-57

@colomfernando colomfernando merged commit c9951eb into master Jun 13, 2024
1 check passed
@colomfernando colomfernando deleted the feature/APPSRN-317-agregar-additional-info-y-metodo-de-suscripcion branch June 13, 2024 14:33
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.

3 participants