# Actions client du plugin Pushwoosh pour Outsystems

Le plugin fournit un ensemble d'actions client pour faciliter la gestion des notifications push. Ces actions vous permettent d'enregistrer et de désenregistrer des appareils, de définir et d'obtenir des tags, de gérer les messages de la boîte de réception, et plus encore.

## Actions client du plugin Pushwoosh

### CheckPushwooshPlugin

Valide si le plugin Pushwoosh est actuellement disponible.

#### Paramètres de sortie

| IsAvailable | Retourne `true` si le plugin est disponible, sinon `false`.                                                                                                          |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error       | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

#### Exemple d'utilisation

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-1.webp" alt="Action CheckPushwooshPlugin"/>

### RegisterDevice

Enregistre un appareil pour les notifications push et récupère un Push Token.

#### Paramètres d'entrée

| ApplicationCode | Texte, le code d'application Pushwoosh obtenu depuis les paramètres de votre compte. |
| --------------- | ------------------------------------------------------------------------------------ |



#### Paramètres de sortie

| RegisterToken | Jeton reçu de Google ou Apple pour l'appareil.                                                                                                                   |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| Error         | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### UnregisterDevice

Désenregistre un appareil de la réception des notifications push.

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### GetDeviceID

Récupère l'ID de l'appareil, qui doit être un identifiant unique.

#### Paramètres de sortie

| DeviceHwid | L'identifiant unique de l'appareil.                                                                                                           |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Error      | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement en cas d'erreur. |

### GetDeviceType

Obtient le type d'appareil (Android, iOS ou Windows).

#### Paramètres de sortie

| DeviceTypeId | L'identifiant de ce type d'appareil. |
| ------------ | ------------------------------------ |

### GetTags

Récupère les données des tags depuis Pushwoosh.

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |
| Tags    | Retourne une liste d'enregistrements Clé, Valeur (`Key, Value Record List`) contenant tous les tags assignés à cet appareil.                                                                                      |

#### Exemple d'utilisation

1. Appelez l'action **GetTags** pour récupérer les données des tags depuis Pushwoosh.
2. Les tags retournés sont accessibles via la liste **GetTags.Tags**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-2.webp" alt=""/>

3. Utilisez l'action **LogMessage** pour journaliser la clé et la valeur de chaque tag.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-3.webp" alt=""/>

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-4.webp" alt=""/>

### PostEvent

Envoie un message à Pushwoosh lorsqu'un événement particulier se produit dans votre application.

#### Paramètres d'entrée

| EventName       | Texte, nom de l'événement                                                                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| EventAttributes | Liste d'enregistrements Clé, Valeur (`Key, Value Record List`), utilisée pour envoyer des données d'événement supplémentaires à Pushwoosh (par ex., pour l'action « UserLogin », vous pourriez vouloir envoyer des données de connexion, telles que - `{"username":"John"}`) |

Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

#### Exemple d'utilisation

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-5.webp" alt=""/>

**1. Assignation**

Configurez des paires clé-valeur pour définir les données de l'événement. Par exemple, `KeyValue1.AttributeName` comme « test1 » et `KeyValue1.Value` comme « test1value ». De même, définissez `KeyValue2` avec le nom d'attribut et la valeur appropriés.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-6.webp" alt=""/>

2. Créez des listes d'attributs à associer à l'événement.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-7.webp" alt=""/>

3. Enfin, configurez l'action **PostEvent**.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-8.webp" alt=""/>

### SetBadgeNumber

Définit le numéro de badge de l'icône de l'application.

#### Paramètres d'entrée

| BadgeNumber | Entier, numéro de badge de l'icône. |
| ----------- | ----------------------------------- |

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### SetLanguage

Définit une langue personnalisée pour l'application au lieu de la langue système par défaut.

#### Paramètres d'entrée

| Language | Texte, langue personnalisée de l'application au format ISO à 2 lettres (par ex., « en », « es », « fr ») |
| -------- | ------------------------------------------------------------------------------------------------------- |

### SetTags

Envoie les tags et leurs valeurs à Pushwoosh.

#### Paramètres d'entrée

| Tags | Liste d'enregistrements `TagName`, `TagValue` contenant tous les tags que vous souhaitez envoyer. Le type de `TagName` doit toujours être Texte, tandis que `TagValue` peut être Texte, Entier, Booléen, Date, etc. |
| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

#### Exemple d'utilisation

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-9.webp" alt=""/>

1. Assignez les valeurs des tags. Dans l'exemple ci-dessous, il y a deux tags :

* Tag1 avec un nom `testTag` et sa valeur définie sur la date actuelle.
* Tag2 avec un nom `testTag2` et sa valeur définie sur `True`.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-10.webp" alt=""/>

2. Ensuite, ajoutez les tags à une liste. Dans cet exemple :

* ListAppend3 ajoute Tag1 à la liste LocalTag.
* ListAppend4 ajoute Tag2 à la liste LocalTag.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-11.webp" alt=""/>

3. Après avoir rempli la liste avec les tags nécessaires, utilisez l'action client **SetTags** pour envoyer cette liste à Pushwoosh.

<img src="/outsystems-pushwoosh-outsystems-plugin-client-actions-12.webp" alt=""/>

### SetUserId

Assigne un ID utilisateur personnalisé à cet appareil.

#### Paramètres d'entrée

| UserID | Texte, ID utilisateur personnalisé. |
| ------ | ----------------------------------- |

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

## Actions client de la boîte de réception Pushwoosh

Le processus de travail avec la boîte de réception est le suivant :

1. Chargez une liste d'objets `InboxMessage`.
2. Utilisez ces objets pour afficher la vue de la boîte de réception.
3. Effectuez les actions listées ci-dessous, ou supprimez ces objets en utilisant les actions décrites ci-dessous.

| code              | Texte                  | ID unique d'une notification de la boîte de réception.                                                                                                                                                                                                                                                                            |
| ----------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| title             | Texte                  | Titre de la notification.                                                                                                                                                                                                                                                                                                         |
| message           | Texte                  | Message de la notification.                                                                                                                                                                                                                                                                                                       |
| imageUrl          | Texte                  | URL d'une image personnalisée jointe à une notification.                                                                                                                                                                                                                                                                          |
| sendDate          | <p>Date</p><p>Heure</p> | Représente l'heure à laquelle une notification a été envoyée.                                                                                                                                                                                                                                                                     |
| type              | Entier                 | <p>Type de notification.</p><p> Valeurs possibles :</p><ul><li>0 - notification standard</li><li>1 - notification rich media</li><li>2 - notification URL</li><li>3 - notification deep link</li></ul>                                                                                                                            |
| bannerUrl         | Texte                  | Contient l'URL d'une bannière Android.                                                                                                                                                                                                                                                                                            |
| customData        | Liste d'enregistrements Clé, Valeur | Contient une liste de paramètres passés en tant que données personnalisées.                                                                                                                                                                                                                                           |
| isRead            | Booléen                | `True` si la notification de la boîte de réception est lue.                                                                                                                                                                                                                                                                       |
| isActionPerformed | Booléen                | <ul><li><strong>`True`</strong> si l'action de la notification est effectuée. </li><li>Pour les notifications standard, <strong>`true`</strong> si une notification est lue. </li><li>Pour les Rich Media, <strong>`true`</strong> si le rich media a été présenté. </li><li>Pour les URL et les deep links, <strong>`true`</strong> si l'URL/le deep link a été ouvert.</li></ul> |

### LoadMessages

Récupère les notifications de la boîte de réception depuis Pushwoosh.

#### Paramètres de sortie

| InboxMessages | Liste `InboxMessage`, liste de tous les messages de la boîte de réception.                                                                                       |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Retourne **`true`** si tout se passe comme prévu, **`false`** en cas d'erreur.                                                                                   |
| Error         | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### ReadMessage

Marque le message de la boîte de réception comme lu.

#### Paramètres d'entrée

| MessageCode | Texte, code d'un `InboxMessage` (reçu en tant que paramètre d'un `InboxMessage` dans `LoadMessages`) |
| ----------- | ---------------------------------------------------------------------------------------------------- |

#### Paramètres de sortie

| Success | `True` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                                    |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### PerformAction

Effectue une action pour les messages de la boîte de réception spécifiés (par ex., ouvrir une URL dans un navigateur).

#### Paramètres d'entrée

| MessageCode | Texte, code d'un `InboxMessage` (reçu en tant que paramètre d'un `InboxMessage` dans `LoadMessages`) |
| ----------- | ---------------------------------------------------------------------------------------------------- |

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### DeleteMessage

Supprime un message de la boîte de réception.

#### Paramètres d'entrée

| MessageCode | Texte, code d'un `InboxMessage` (reçu en tant que paramètre d'un `InboxMessage` dans `LoadMessages`) |
| ----------- | ---------------------------------------------------------------------------------------------------- |

#### Paramètres de sortie

| Success | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Error   | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### TotalMessagesCount

Retourne le nombre total de messages dans la boîte de réception.

#### Paramètres de sortie

| MessagesCount | Entier, nombre total de messages dans la boîte de réception.                                                                                                     |
| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success       | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| Error         | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### UnreadMessagesCount

Retourne le nombre de messages non lus dans la boîte de réception.

#### Paramètres de sortie

| UnreadMessagesCount | Entier, nombre de messages non lus dans la boîte de réception.                                                                                                   |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success             | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| Error               | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |

### MessagesWithNoActionPerformedCount

Retourne le nombre de messages de la boîte de réception pour lesquels aucune action n'a été effectuée.

#### Paramètres de sortie

| MessagesWithNoActionPerformedCount | Entier, nombre de messages de la boîte de réception pour lesquels aucune action n'a été effectuée.                                                               |
| ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Success                            | Retourne `true` si tout se passe comme prévu, `false` en cas d'erreur.                                                                                           |
| Error                              | Une erreur contenant le code d'erreur et le message d'erreur avec des détails sur toute erreur qui aurait pu se produire. Défini uniquement lorsque le paramètre de sortie `Success` est `false`. |