# Smart Element: tags utilisateurs
Cette ressource décrit les tags utilisateur des Smart Elements. Un tag est un mot-clef auquel une valeur est éventuellement associée. Ce tag est associé à un Smart Element pour un utilisateur particulier.
# URL
L'URL d'accès est /api/v2/smart-elements/<docid>/usertags/
# Méthodes
La sous-collection usertags implémente les éléments suivants:
- Collection
| Action | URL | Action effectuée |
|---|---|---|
| GET | /api/v2/smart-elements/<docid>/usertags/ | Liste des tags utilisateurs |
| PUT | /api/v2/smart-elements/<docid>/usertags/ | N/A |
| POST | /api/v2/smart-elements/<docid>/usertags/ | N/A |
| DELETE | /api/v2/smart-elements/<docid>/usertags/ | N/A |
- Ressource
| Action | URL | Action effectuée |
|---|---|---|
| GET | /api/v2/smart-elements/<docid>/usertags/<tag> | Retourne la définition du tag donné |
| PUT | /api/v2/smart-elements/<docid>/usertags/<tag> | Modifie un tag existant |
| POST | /api/v2/smart-elements/<docid>/usertags/<tag> | Ajoute un tag |
| DELETE | /api/v2/smart-elements/<docid>/usertags/<tag> | Supprime un tag |
# Liste des tags utilisateur
# URL
GET /api/v2/smart-elements/<docid>/usertags/
Récupération des tags de l'utilisateur connecté pour le Smart Element docid.
Exemple: GET /api/v2/smart-elements/DEVBILL/usertags/
GET /api/v2/smart-structures/<family>/smart-elements/<docid>/usertags/
Récupération des tags de l'utilisateur connecté pour le Smart Element docid de la Smart Structure family.
# Contenu
Le contenu de la requête est vide.
# Structure de retour
Le retour est une donnée JSON
# En cas de réussite
La partie data contient les champs suivants:
requestParameters: contient un résumé des paramètres de la requête en cours (pagination),uri: URI d'accès à la collection,userTags: un tableau de tags utilisateur.
Chaque tag utilisateur est un objet contenant les entrées suivantes:id: identifiant du tag (les identifiants sont sensibles à la casse),date: date de pose du tag,value: valeur de tag,uri: URI d'accès au tag.
Exemple:
{
"success": true,
"data": {
"uri": "/api/v2/smart-elements/usertags/",
"requestParameters": {
"slice": -1,
"offset": 0
},
"userTags": [
{
"id": "testTag",
"date": "2019-08-22 09:41:02",
"uri": "/api/v2/smart-elements/usertags/DEVBILL",
"value": true
}
]
},
"messages": []
}
# En cas d'échec
Les raisons d'échec spécifiques à cette requête sont:
| Raison | Status HTTP | Code d'erreur |
|---|---|---|
| Smart Element non trouvé | 404 | CRUD0200 |
| Privilège insuffisant pour accéder au Smart Element | 403 Forbidden | CRUD0201 |
| Smart Element supprimé | 404 | CRUD0219 |
# Pagination et tri
La liste des tags utilisateur est paginée et ordonnée.
- slice :
- indique le nombre maximum de tags à retourner; sa valeur est un entier. Si sa valeur est inférieur ou égale à 0, toutes les valeurs sont retournées.
- sa valeur par défaut est
-&,
- offset:
- indique de passer ce nombre de tags avant de renvoyer les tags restants,
- valeur par défaut: 0.
N.B.
Les paramètres appliqués sont résumés dans le retour de la collection requestParameters.
Le tri des tags utilisé est basé sur la date de modification. Il est donné dans l'ordre descendant (du plus récent au
plus ancien). :::
# Récupérer un tag utilisateur
# URL
GET /api/v2/smart-elements/<docid>/usertags/<tag> Récupération du tag tag du Smart Element docid de l'utilisateur
connecté.
GET /api/v2/smart-structures/<family>/smart-elements/<docid>/usertags/<tag> Récupération du tag tag du Smart Element
docid de la Smart Structure family de l'utilisateur connecté.
Exemple: GET /api/v2/smart-elements/DEVBILL/usertags/testTag
# Contenu
Le contenu de la requête est vide.
# Structure de retour
Le retour est une donnée JSON.
# En cas de réussite
La partie data contient les champs suivants:
uri: URI préférentielle d'accès à la ressource,userTag: Propriété du tagid: identifiant du tag (les identifiants sont sensibles à la casse),date: date de pose du tag,value: valeur du tag. La valeur peut avoir 3 formes:- String: donnée chaîne (ex:
Hello World), - Numérique: donnée numérique (ex:
123.34), - Objet: données compatibles JSON ( ex:
{"one":12, "two": "Hello"}).
- String: donnée chaîne (ex:
Exemple:
{
"success": true,
"data": {
"uri": "/api/v2/smart-elements/DEVBILL/usertags/testTag",
"userTag": {
"id": "testTag",
"date": "2019-08-22 09:41:02",
"value": ""
}
},
"messages": []
}
# En cas d'échec
Les raisons d'échec spécifiques à cette requête sont:
| Raison | Status HTTP | Code d'erreur |
|---|---|---|
| Smart Element non trouvé | 404 Not found | CRUD0200 |
| Privilège d'accès au Smart Element insuffisant | 401 Forbidden | CRUD0201 |
| Smart Element supprimé | 404 Document deleted | CRUD0219 |
| Tag demandé inexistant | 404 Not found | CRUD0223 |
# Créer un tag utilisateur
# URL
POST /api/v2/smart-elements/<docid>/usertags/<tag>
Création du tag tag pour le Smart Element docid. Le tag est associé à l'utilisateur connecté.
POST /api/v2/smart-structures/<family>/smart-elements/<docid>/usertags/<tag>
Création du tag tag pour le Smart Element docid de la Smart Structure family.
Exemple:
POST /api/v2/smart-elements/DEVBILL/usertags/testTag
Le droit de modifier le Smart Element n'est pas requis pour ajouter un tag. Seul le droit de consulter le Smart Element est requis.
# Contenu
Le contenu contient la valeur du tag. Si elle est vide, la valeur sera égale à la chaîne vide.
Si le contenu est une structure json, la valeur retournée sera une structure.
# Structure de retour
La partie data contient les champs suivants:
uri: URI préférentielle d'accès à la ressource,userTag: liste des valeurs des propriétés.
Exemple:
{
"success": true,
"data": {
"uri": "/api/v2/smart-elements/DEVBILL/usertags/testTag2",
"userTag": {
"id": "testTag2",
"date": "2019-08-22 10:11:24",
"value": "Hello"
}
},
"messages": []
}
# En cas d'échec
Les raisons d'échec spécifiques à cette requête sont:
| Raison | Status HTTP | Code d'erreur |
|---|---|---|
| Smart Element non trouvé | 404 Not found | CRUD0200 |
| Privilège d'accès au Smart Element insuffisant | 401 Forbidden | CRUD0201 |
| Smart Element supprimé | 404 Document deleted | CRUD0219 |
| Impossible de créer le tag | 400 | CRUD0224 |
| Tag déjà existant | 400 | CRUD0225 |
# Modifier un tag utilisateur
# URL
PUT /api/v2/smart-elements/<docid>/usertags/<tag>
Modification du tag tag du Smart Element docid pour l'utilisateur connecté.
PUT /api/v2/smart-structures/<family>/smart-elements/<docid>/usertags/<tag>
Modification du tag tag du Smart Element docid de la Smart Structure family pour l'utilisateur connecté.
Exemple: PUT /api/v2/smart-elements/DEVBILL/usertags/testTag
N.B.
Si le tag n'existe pas déjà, alors il sera créé.
# Contenu
Le contenu de la requête contient la valeur du tag.
Si il est vide, la valeur est égale à la chaîne vide.
Si le contenu est une structure JSON, la valeur retournée est une structure.
# Structure de retour
Le retour est une donnée JSON.
# En cas de réussite
La partie data contient les champs suivants:
uri: URI préférentielle d'accès à la ressource,userTag: liste des valeurs du tag.
Exemple:
{
"success": true,
"data": {
"uri": "/api/v2/smart-elements/DEVBILL/usertags/testTag2",
"userTag": {
"id": "testTag2",
"date": "2019-08-22 10:17:17",
"value": {
"test": "UTAG",
"value": "Ok"
}
}
},
"messages": []
}
# En cas d'échec
Les raisons d'échec spécifiques à cette requête sont:
| Raison | Status HTTP | Code d'erreur |
|---|---|---|
| Smart Element non trouvé | 404 Not found | CRUD0200 |
| Privilège d'accès au Smart Element insuffisant | 401 Forbidden | CRUD0201 |
| Smart Element supprimé | 404 Document deleted | CRUD0219 |
# Modifier un tag utilisateur
# URL
DELETE /api/v2/smart-elements/<docid>/usertags/<tag>
Suppression du tag tag du Smart Element docid.
DELETE /api/v2/smart-structures/<family>/smart-elements/<docid>/usertags/<tag>
Suppression du tag tag du Smart Element docid de la Smart Structure family.
Exemple:
DELETE /api/v2/smart-elements/DEVBILL/usertags/testTag2
N.B.
Le droit de modifier le Smart Element n'est pas requis pour supprimer un tag. Seul le droit de consulter le Smart Element est requis.
# Contenu
Le contenu de la requête est vide.
# Structure de retour
Le retour est une donnée JSON.
# En cas de réussite
La partie data est vide.
Exemple:
{
"success": true,
"data": null,
"messages": []
}
# En cas d'échec
Les raisons d'échec spécifiques à cette requête sont:
| Raison | Status HTTP | Code d'erreur |
|---|---|---|
| Smart Element non trouvé | 404 Not found | CRUD0200 |
| Privilège d'accès au Smart Element insuffisant | 401 Forbidden | CRUD0201 |
| Smart Element supprimé | 404 Document deleted | CRUD0219 |
| Tag demandé inexistant | 400 | CRUD0223 |