# Onsite API

## Premiers pas

L’API onsite est utilisée pour interagir avec les fonctionnalités de Commanders Act en JavaScript.

## Comment l’utiliser

L’API onsite se compose d’une seule fonction, `cact()`, avec la signature stricte suivante :

```javascript
cact(command, [options,] [callback])
```

| Argument   | Descriptions                                                                                                     | Obligatoire |
| ---------- | ---------------------------------------------------------------------------------------------------------------- | ----------- |
| `command`  | Un identifiant de chaîne utilisé pour sélectionner la méthode souhaitée.                                         | Obligatoire |
| `options`  | Un objet JavaScript qui inclut les données transmises à la méthode.                                              | Facultatif  |
| `callback` | Une fonction de rappel JavaScript utilisée pour recevoir des informations ou des événements depuis l’API onsite. | Facultatif  |

L’API onsite est incluse dans chaque containers et privacy banners.

## Envoyer un événement

Pour envoyer des données d’événement à la plateforme Commanders Act serverside, utilisez cette commande :

```javascript
cact('<event_name>', {<event_params>});
```

Exemple : pour envoyer un événement d’achat :

```javascript
cact('purchase', { 
  id:'1234',
  currency: 'EUR',
  //...
});
```

## Obtenir des informations

Pour obtenir différentes valeurs depuis Commanders Act, utilisez cette commande :

```javascript
cact(get command, [callback])
```

Exemple : pour obtenir le consentement de TrustCommander, vous pouvez appeler l’ `consent.get` API comme ceci :

```javascript
cact('consent.get', function(result) {
    if (result.consent.status === "all-on") {
        
        // Consent disponible pour toutes les catégories.
        
    }
});
```

{% hint style="warning" %}
Les méthodes de l’API onsite sont appelées de manière asynchrone. Dans le cas, par exemple, où vous avez besoin d’informations de manière synchrone dans le `<head>` du document, il est recommandé de mettre en cache et de récupérer le résultat de l’API dans `localStorage`.
{% endhint %}

## Gestion des erreurs

Vous pouvez gérer les erreurs via la propriété error dans l’objet de rappel.\
Exemple :

```javascript
cact('consent.get', function(result) {

    if (result.error) {
    
        // Gérer l’erreur
    
    }
    else if (result.consent.status === "all-on") {
        
        // Consent disponible pour toutes les catégories.
        
    }
});
```

## Stub API (facultatif)

Pour une utilisation avancée, nous fournissons également un stub API qui peut être ajouté lorsque vous devez interagir avec l’API avant que les containers ou banners n’aient été chargés.\
Ce stub est déjà inclus dans les containers et privacy banners, donc vous n’avez pas besoin de l’ajouter dans la plupart des cas d’utilisation.\
Le stub est utilisé pour mettre en tampon toutes les méthodes dans un tableau JavaScript jusqu’à ce que le JavaScript de Commanders Act soit chargé et prêt à traiter les méthodes. Cela permet par exemple d’utiliser l’API onsite avant que le JavaScript de TrustCommander ne soit chargé.

```javascript
window.caReady = window.caReady || []; 
window.cact = function() { window.caReady.push(arguments); };
```

`window.caReady` est un tableau JavaScript qui met en tampon les interactions avec l’API. `window.cact` est une fonction JavaScript utilisée pour interagir avec l’API onsite.

{% hint style="success" %}
Dans le cas où vous travaillez dans une grande équipe et n’êtes pas sûr que le stub ait déjà été installé, il est possible d’installer le stub JavaScript plusieurs fois.
{% endhint %}
