Chaque fonction de l’API renvoi, dans leur réponse, les variables success (true/false), message, et éventuellement des données supplémentaires en fonction de la fonction appelée.
Les requêtes devront avoir dans leur header la valeur Authorization avec comme valeur le token JWT qui sera retourné lors d'une connexion réussie.
Pour chaque requête, en cas de succès ou d'erreur contrôlé le code HTTP 200 est retourné, sinon le code HTTP retourné sera de type 4XX ou 5XX
BASE URL : https://oauth.planitel.com
INTERNE APIKEY : itM8mSIx0KRxdRd
* Cette clé est à utiliser lors de requête sur l'api Oauth provenant d'autre API.
La durée du token JWT est de 1 heure.
Description : Permet une connexion sécurisée via JWT.
Méthode : POST
URL : /api/login
PLUS : Chaque élément de l'objet WORKSPACES fait référence à une entreprise à laquelle est l'utilisateur est lié, il pourra avoir un ou plusieurs rôles aux seins de chaque entreprise : Client, Astreinte ou Gestionnaire.
Data à envoyer
{
"username": "john.doe@abplus.fr",
"password": "monsuperpassword"
}
Data retournée
{
"token": "JWT TOKEN",
"data": {
"id": idUser,
"email": "emailUser",
"workspaces": [
{
"id": Enterprise ID,
"name": "Enterprise Name,
"roles": {
"client": TRUE || FALSE,
"supervisor": [
{
"id": idSupervisor,
"fullaccess": TRUE || FALSE,
"appId": appId (Clé non présente si fullaccess = TRUE),
"appType": "ex : planning" (Clé non présente si fullaccess = TRUE)
}
] || FALSE IF COUNT = 0,
"oncall": [
{
"id": Oncall ID,
"appId": App ID,
"appType": "ex : planning",
"name": "Oncall Name",
"color": "Color on planning",
"destinations": [
{
"star": true,
"number": "0666712423",
"ringTime": 30
},
{
"star": false,
"number": "0666712422",
"ringTime": 20
}
],
"privileges": {
"planningAccess": true,
"updateAllPlanning": false,
"updateOnlyOncallPeriod": true,
"updateDest": true,
"onOffPrivilege": true
}
},
] || FALSE IF COUNT = 0
}
}
]
}
}
Description : Permet de créer une entreprise.
Méthode : POST
URL : /api/interface/admin/enterprise
Data à envoyer
{
"name": "ABPLUS",
"siret": "40822120800023",
"address": "183 AV ACHILLE PERETTI",
"cp": "92200",
"city": "NEUILLY-SUR-SEINE",
"country": "FRANCE"
}
Data retournée
{
"message": "success",
"success": true,
"enterprise": enterprise ID
}
Description : Permet d'enregistrer les coordonnées bancaires d'une entreprise.
Méthode : POST
URL : /api/interface/admin/bankdetails
Data à envoyer
{
"iban": "FR7645511515151",
"debitName": "Planitel service",
"invoiceEmail": "john.doe@gmail.com",
"debitDate": "2022-01-05 00:00:00",
"rumNumber": "rum number",
"enterprise": enterprise ID
}
Data retournée
{
"message": "success",
"success": true
}
Description : Permet de créer un client.
Méthode : POST
URL : /api/interface/admin/register/client
PLUS : Si l'utilisateur n'existe pas, un nouvel utilisateur est crée. Dans le cas contraire l'utilisateur existant est repris.
Data à envoyer
{
"email": "john.doe@gmail.com",
"enterprise": enterprise ID
}
Data retournée
{
"message": "Client créer avec succès.",
"success": true,
"user": user ID,
"password": "temporary password" || “”
}
Description : Permet de créer un admin ABPLUS.
Méthode : POST
URL : /api/interface/admin/register/admin
PLUS : Si l'utilisateur n'existe pas, un nouvel utilisateur est crée. Dans le cas contraire l'utilisateur existant est repris. Cependant attention, il n'est pas possible d'avoir deux fois le même administrateur sur Planitel.
Pour des raisons de sécurité, une vérification de l'adresse IP depuis laquelle l'administrateur se connecte est effectuée, si l'adresse IP n'est pas dans les adresses de confiance de l'administrateur, un email afin de l'ajouter lui est alors envoyé.
Data à envoyer
{
"email": "john.doe@gmail.com"
}
Data retournée
{
"message": "Administrateur créer avec succès.",
"success": true,
"user": user ID,
"password": “temporary password”,
"email": {
"message": "Email envoyé avec succès.",
"success": true
}
}
Description : Permet d'envoyer un email avec les accès de l'interface à un nouveau client.
Méthode : GET
URL : /api/interface/admin/client/sendaccess/{idClient}
Data retournée
{
"message": "Email envoyé avec succès.",
"success": true
}
Description : Permet de récupérer la liste des ADMIN ABPLUS.
Méthode : GET
URL : /api/interface/admin/admin/get
Data retournée
[
{
"idAdmin": admin ID,
"idUser": user ID,
"email": "john.doe@gmail.com",
"archive": false,
"createdAt": {
"date": "2022-12-17 02:17:20.000000",
"timezone_type": 3,
"timezone": "UTC"
}
}
]
Description : Permet d'archiver un ADMIN ABPLUS.
Méthode : PUT
URL : /api/interface/admin/admin/archive/{idAdmin}/{passwd}
Data retournée
{
"success": true,
"description": "L'administrateur a été archivé avec succès.",
"message": "success"
}
Description : Permet de restaurer un ADMIN ABPLUS.
Méthode : PUT
URL : /api/interface/admin/admin/unarchive/{idAdmin}/{passwd}
Data retournée
{
"success": true,
"description": "L'administrateur a été désarchivé avec succès.",
"message": "success"
}
Description : Permet de supprimer un ADMIN ABPLUS
Méthode : PUT
URL : /admin/admin/delete/{idAdmin}/{passwd}
Data retournée
{
"success": true,
"description": "L'administrateur a été supprimé avec succès.",
"message": "success"
}
Description : Permet de changer le client d'une entreprise.
Méthode : PUT
URL : /api/interface/admin/enterprise/client/change
PLUS : Si l'utilisateur n'existe pas, un nouvel utilisateur est crée. Dans le cas contraire l'utilisateur existant est repris.
Data à envoyer
{
"email": "new client email",
"enterprise": enterprise ID
}
Data retournée
{
"success": true,
"description": "Le client a bien été modifié.",
"message": "success"
}
Description : Permet de désactiver une entreprise.
Méthode : PUT
URL : /api/interface/admin/enterprise/disable/{enterpriseId}
Data retournée
{
"success": true,
"description": "L'entreprise a été désactivé avec succès.",
"message": "success"
}
Description : Permet de réactiver une entreprise.
Méthode : PUT
URL : /api/interface/admin/enterprise/active/{enterpriseId}
Data retournée
{
"success": true,
"description": "L'entreprise a été activée avec succès.",
"message": "success"
}
Description : Permet de récupérer une liste d'entreprise par pagination.
Méthode : GET
URL : /api/interface/admin/enterprise/get/{page}/{count}
PLUS : Par défaut la méthode sans paramètre place le paramètre page à 1 et count à 5
Data retournée
{
"success": true,
"data": [
{
"id": 10,
"name": "Enterprise 1",
"createdAt": {
"date": "2022-12-29 11:13:53.000000",
"timezone_type": 3,
"timezone": "Europe/Paris"
},
"country": "FRANCE",
"state": true
},
{
"id": 7,
"name": "Enterprise 2",
"createdAt": {
"date": "2022-12-23 16:24:26.000000",
"timezone_type": 3,
"timezone": "Europe/Paris"
},
"country": "FRANCE",
"state": true
}
],
"total": 6,
"count": 2,
"page": 1
}
Description : Permet à un client de créer un gestionnaire.
Méthode : POST
URL : /api/interface/register/supervisor
PLUS : Si l'utilisateur n'existe pas, un nouvel utilisateur est crée et un email avec ses informations de connexion lui est envoyé. Dans le cas contraire l'utilisateur existant est repris.
Data à envoyer
{
"enterprise": enterprise ID,
"email": "john.doe@gmail.com",
“fullaccess”: true, (Clé non présente si les clés appId et appType sont présentes)
"appId": app ID, (Clé non présente si la clé fullaccess est présente)
"appType": "ex : planning" (Clé non présente si la clé fullaccess est présente)
}
Data retournée
{
"message": "Gestionnaire crée avec succès.",
"success": true,
"user": user ID,
"password": "temporary password" || “”,
"email": {
"message": "Email envoyé avec succès.",
"success": true
} || FALSE
}
Description : Permet à un client ou à un gestionnaire de créer une astreinte.
Méthode : POST
URL : /api/interface/register/oncall
PLUS : Si l'utilisateur n'existe pas, un nouvel utilisateur est crée et un email avec ses informations de connexion lui est envoyé. Dans le cas contraire l'utilisateur existant est repris.
Data à envoyer
{
"enterprise": enterprise ID,
"email": "john.doe@gmail.com",
"appId": app ID,
"appType": "ex : planning",
"name": "John",
"color": "couleur sur le planning",
"destinations": [
{
"number": "0666712423",
"star": true,
"ringTime": 30
},
{
"number": "0666712422",
"star": false,
"ringTime": 20
}
],
"privileges": {
"planningAccess": true,
"updateAllPlanning": false,
"updateOnlyOncallPeriod": true,
"updateDest": true,
"onOffPrivilege": true
}
}
Data retournée
{
"message": "Astreinte créee avec succès.",
"success": true,
"user": user ID,
"password": "temporary password" || “”,
"email": {
"message": "Email envoyé avec succès.",
"success": true
} || FALSE
}
Description : Permet à un client de récupérer les informations de son entreprise.
Méthode : GET
URL : /api/interface/enterprise/{enterpriseId}
Data retournée
{
"informations": {
"name": "ENTERPRISE NAME",
"siret": "40822120800023",
"address": "85 rue des cyclamens",
"cp": "39000",
"city": "Lons-le-Saunier",
"country": "FRANCE"
},
"bankdetails": {
"3": {
"id": 3,
"iban": "FR7645511515151",
"invoiceEmail": "john.doe@gmail.com",
"rumNumber": "rumnumberrr",
"debitName": "Planitel service",
"debitDate": {
"date": "2022-01-15 00:00:00.000000",
"timezone_type": 3,
"timezone": "Europe/Paris"
}
}
},
"contact": {
"email": "john.doe@gmail.com"
}
}
Description : Permet à un client ou à un gestionnaire de récupérer la liste des astreintes active pour une application.
Méthode : GET
URL : /api/interface/oncall/active/{appID}/{enterpriseID}
Data retournée
[
{
"id": astreinte ID,
"name": "astreinte name",
"color": "#000001",
"state": true,
"destinations": [
{
"star": true,
"number": "0666712425",
"ringTime": 30
},
{
"star": false,
"number": "0666712422",
"ringTime": 20
}
],
"privileges": {
"planningAccess": true,
"updateAllPlanning": true,
"updateOnlyOncallPeriod": true,
"updateDest": true,
"onOffPrivilege": true
}
},…
]
Description : Permet à un client ou à un gestionnaire de récupérer la liste des astreintes archivées pour une application.
Méthode : GET
URL : /api/interface/oncall/archive/{appID}/{enterpriseID}
Data retournée
[
{
"id": astreinte ID,
"name": "astreinte name",
"color": "#000001",
"state": true,
"destinations": [
{
"star": true,
"number": "0666712425",
"ringTime": 30
},
{
"star": false,
"number": "0666712422",
"ringTime": 20
}
],
"privileges": {
"planningAccess": true,
"updateAllPlanning": true,
"updateOnlyOncallPeriod": true,
"updateDest": true,
"onOffPrivilege": true
}
},…
]
Description : Permet à un client de récupérer la liste des gestionnaires actives de son (ou de ses) entreprise(s)
Méthode : GET
URL : /api/interface/supervisor/active/{enterpriseID}
Data retournée
{
"john.doe@gmail.com": [
{
"id": 5,
"email": "john.doe@gmail.com",
"fullaccess": false,
"appId": 2,
"appType": "planning",
"numberId": null
},
{
"id": 5,
"email": "john.doe@gmail.com",
"fullaccess": false,
"appId": 3,
"appType": "planning",
"numberId": null
},…
]
}
Description : Permet à un client de récupérer la liste des gestionnaires archivés de son (ou de ses) entreprise(s)
Méthode : GET
URL : /api/interface/supervisor/archive/{enterpriseID}
Data retournée
{
"john.doe@gmail.com": [
{
"id": 5,
"email": "john.doe@gmail.com",
"fullaccess": false,
"appId": 2,
"appType": "planning",
"numberId": null
},
{
"id": 5,
"email": "john.doe@gmail.com",
"fullaccess": false,
"appId": 3,
"appType": "planning",
"numberId": null
},…
]
}
Description : Permet à un client ou à un gestionnaire d'archiver une astreinte
Méthode : PUT
URL : /api/interface/oncall/archive/{oncallID}
Data retournée
{
"success": true,
"description": "L'astreinte a été archivé avec succès.",
"message": "success"
}
Description : Permet à un client ou à un gestionnaire de désarchiver une astreinte
Méthode : PUT
URL : /api/interface/oncall/unarchive/{oncallID}
Data retournée
{
"success": true,
"description": "L'astreinte a été désarchivée avec succès.",
"message": "success"
}
Description : Permet à un client ou à un gestionnaire de supprimer une astreinte
Méthode : PUT
URL : /api/interface/oncall/delete/{oncallID}
Data retournée
{
"success": true,
"description": "L'astreinte a été supprimée avec succès.",
"message": "success"
}
Description : Permet à un client ou à un gestionnaire de modifier une astreinte
Méthode : PUT
URL : /api/interface/oncall/{oncallID}
Data à envoyer
{
"name": "astreinte name",
"color": "#000001",
"state": true,
"destinations": [
{
"star": true,
"number": "0666712425",
"ringTime": 30
},
{
"star": false,
"number": "0666712422",
"ringTime": 20
}
],
"privileges": {
"planningAccess": true,
"updateAllPlanning": true,
"updateOnlyOncallPeriod": true,
"updateDest": true,
"onOffPrivilege": true
}
}
Data retournée
{
"success": true,
"description": "Les informations de l'astreinte ont été modifiées avec succès.",
"message": "success",
"email": {
"message": "Email envoyé avec succès.",
"success": true
} || FALSE
}
Description : Permet à un client d'archiver un gestionnaire
Méthode : PUT
URL : /api/interface/supervisor/archive/{supervisorID}
Data retournée
{
"success": true,
"description": "Le gestionnaire a été archivé avec succès.",
"message": "success"
}
Description : Permet à un client de désarchiver un gestionnaire
Méthode : PUT
URL : /api/interface/supervisor/unarchive/{supervisorID}
Data retournée
{
"success": true,
"description": "Le gestionnaire a été désarchivé avec succès.",
"message": "success"
}
Description : Permet à un client de supprimer un gestionnaire
Méthode : PUT
URL : /api/interface/supervisor/delete/{supervisorID}
Data retournée
{
"success": true,
"description": "Le gestionnaire a été supprimé avec succès.",
"message": "success"
}
Description : Permet à un client de modifier un gestionnaire
Méthode : PUT
URL : /api/interface/supervisor/{supervisorID}
Data à envoyer
{
“fullaccess”: true, (Clé non présente si les clés appId et appType sont présentes)
"appId": app ID, (Clé non présente si la clé fullaccess est présente)
"appType": "ex : planning" (Clé non présente si la clé fullaccess est présente)
}
Data retournée
{
"success": true,
"description": "Les informations du gestionnaire ont été modifiées avec succès.",
"message": "success"
}
Description : Permet à un client de modifier ses coordonnées bancaires
Méthode : PUT
URL : /api/interface/enterprise/bankdetails/{enterpriseID}/{bankDetailID}
Data à envoyer
{
"iban": "FR7645511515151",
"invoiceEmail": "john.doe@gmail.com",
"rumNumber": "rum number",
"debitName": "Planitel service",
"debitDate": "2022-01-15 00:00:00"
}
Data retournée
{
"success": true,
"description": "Les coordonnées bancaires de l'entreprise ont été modifiées avec succès.",
"message": "success"
}
Description : Permet à un client de modifier les informations de son entreprise.
Méthode : PUT
URL : /api/interface/enterprise/{enterpriseID}
Data à envoyer
{
"siret": "40822120800023",
"address": "85 rue des cyclamens",
"cp": "39000",
"city": "Lons-le-Saunier",
"country": "FRANCE"
}
Data retournée
{
"success": true,
"description": "Les informations de l'entreprise ont été modifiées avec succès.",
"message": "success"
}
Description : Permet d'envoyer un email avec un lien de réinitialisation de mot de passe à un utilisateur (et si l'email existe)
Méthode : POST
URL : /api/interface/user/forgotpassword
Data à envoyer
{
"email": "john.doe@gmail.com"
}
Data retournée
{
"message": "Un email de réinitialisation vient de vous être envoyé.",
"success": true
}
Description : Permet de savoir si un token de réinitialisation de mot de passe existe ou non
Méthode : GET
URL : /api/interface/user/password/token/{token}
Data retournée
true || false
Description : Permet à un utilisateur de modifier son mot de passe
Méthode : PUT
URL : api/interface/user/password/update
Data à envoyer
{
"token": "tokenResetPassword",
"passwd": "monsupernouveaupassword"
}
Data retournée
{
"message": "Le mot de passe a bien été modifié.",
"success": true
}
Description : Permet d'ajouter une adresse IP à la liste des IP de confiance d'un administrateur
Méthode : GET
URL : api/interface/admin/trustedIp/{token}/{ip}
Data retournée
{
"message": "success",
"success": true
}