S’abonner

API des congés (Leaves)

Tout accès à l'API nécessite une authentification (voir Authentification à l'API)

L'objet Leave

Un Leave est un objet indiquant quand il est présent, pour un utilisateur (owner) et pour une journée ou une demi-journée que le salarié est en congé. L’exemple suivant :


{
    "owner": {
        "displayName": "François Bigeot"},
        "date": "2015-07-07T00:00:00",
        "leaveScope": "PM",
        "lastModified": "2015-02-05T12:15:34",
        "accountCode": 4515,
        "status": 0
    }
}

montre que François Bigeot est en congé le 8 Juillet 2015 pendant l’après midi. S'il avait également été en congé le matin sur le même compteur, PM aurait été remplacé par ALL. S'il l'avait été sur un autre compteur ou à l'occasion d'une autre demande, un Leave supplémentaire aurait été produit uniquement sur AM.

Congés d'un salarié ou d'un département spécifique

Pour récupérer les congés d'un salarié en particulier, vous pouvez ajouter un filtre comme suit :

https://{instance}/api/leaves?date=between,2015-07-01,2015-08-31&fields=owner.name,owner.login,owner.mail,owner.matricule,name,date,status&owner.id=344

Si vous ne connaissez pas les identifiants de vos salariés, vous devez faire une première requête à l'API concernée, par ex si vous connaissez le mail :

https://{instance}/api/users?mail={XXX}

De même, si vous voulez récupérer les congés d'un département en particulier, vous devez d'abord récupérer son ID :

https://{instance}/api/departments

Puis vous effectuer la requête suivante :

https://{instance}/api/leaves?date=between,2015-07-01,2015-08-31&fields=owner.name,owner.login,owner.mail,owner.matricule,name,date,status&department.id=1

Suivre l'évolution des congés

INITIALISATION

En tout premier lieu, une initialisation est nécessaire pour obtenir l'état des congés sur la période considérée pour les utilisateurs considérés. Exemple de requête initiale concernant un seul utilisateur faite le 05 Février 2015 à 12h20 :

https://{instance}/api/leaves?fields=leaveScope,status,owner.displayName,date,lastModified,accountCode&date=between,2015-07-01,2015-07-31&owner.id=393

[
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-07T12:00:00",
        "leaveScope": "PM",
        "lastModified": "2015-02-05T12:15:46",
        "accountCode": 4515,
        "status": 0
    },
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-07T00:00:00",
        "leaveScope": "AM",
        "lastModified": "2015-02-05T12:15:34",
        "accountCode": 4515,
        "status": 0
    },
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-06T00:00:00",
        "leaveScope": "ALL",
        "lastModified": "2015-02-05T12:16:09",
        "accountCode": 4115,
        "status": 1
    },
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "leaveScope": "ALL",
        "date": "2015-07-08T00:00:00",
        "lastModified": "2015-02-05T12:15:56",
        "accountCode": 4712,
        "status": 0
    }
]

On observe que les journées du 6, 7 et 8 sont posées avec des statuts validé ou en attente.

SUIVI DU DIFFERENTIEL

Une fois les congés initiaux en votre possession, vous pouvez suivre les évolutions en lançant systématiquement trois requêtes : une pour les annulations et refus une pour les corrections une pour les nouveaux congés (temporaires ou validés) Attention, il faut bien enregistrer la date de la dernière requête, car il faudra l'utiliser (via le champ modified on) pour la requête suivante afin de limiter les résultats aux entrées qui se sont produites depuis la dernière requête. Autre remarque : le scope d'une entrée peut être d'une demi journée ou d'une journée entière, mais n'est pas nécessairement celui des entrée précédemment acquises via l'api pour les mêmes dates. En effet un congé peut être pris sur une journée, avec ensuite seulement une journée corrigée.

1. Annulations et refus

https://{instance}/api/leaves?fields=leaveScope,owner.displayName,date,lastModified&date=between,2015-07-01,2015-07-31&owner.id=393&modifiedOn=since,2015-02-05T12:20:00&status=3,4

[
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-07T12:00:00",
        "leaveScope": "PM",
        "lastModified": "2015-02-05T13:55:01"
    },
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-07T00:00:00",
        "leaveScope": "AM",
        "lastModified": "2015-02-05T13:54:17.063"
    }
]

On observe que la journée du 7 a été annulée ou refusée.

2. Corrections

https://{instance}/api/leaves?fields=leaveScope,owner.displayName,date,lastModified&date=between,2015-07-01,2015-07-31&owner.id=393&modifiedOn=since,2015-02-05T12:20:00&debit=until,0


[
    {
        "owner": {
            "displayName": "François Bigeot"
        },
        "date": "2015-07-06T00:00:00",
        "leaveScope": "ALL",
        "lastModified": "2015-02-05T13:54:34.03"
    }
]

On observe que la journée du 8 a été annulée par correction.

3. Nouveaux congés

https://{instance}/api/leaves?fields=leaveScope,status,owner.displayName,date,lastModified&date=between,2015-07-01,2015-07-31&owner.id=393&modifiedOn=since,2015-02-05T12:20:00


[
    {
        "owner": {
            "displayName": "François Bigeot"},
        "date": "2015-07-08T00:00:00",
        "leaveScope": "AM",
        "lastModified": "2015-02-05T13:55:42",
        "status": 1
    }
]

On observe enfin qu'un nouveau congé a été posé sur la matinée du 8.

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande

Commentaires

Réalisé par Zendesk