Le service create/annex permet d'ajouter une annexe à un objet précédemment créé (qu'on nommera son conteneur), par exemple via le service create/item.
Tout moment n'est pas opportun pour ajouter une annexe à un conteneur. Tout dépend de l'état de celui-ci et des permissions dont dispose l'appelant.
Par exemple, en ce qui concerne un point, à partir d'un certain stade, un appelant ayant le rôle de créateur (voire de validateur) de points ne pourra plus modifier quoi que ce soit sur le point et, entre autres, ne pourra plus y ajouter d'annexes.
Ce stade peut correspondre au fait que le point figure dans un ordre du jour validé définitivement. Mais ce n'est qu'un exemple, tout dépend des variantes appliquées sur les workflows des points et des séances au sein de l'HubSessions que vous attaquez; les possibilités sont nombreuses. Pour tout questionnement à ce sujet, veuillez vous adresser à votre référent HubSessions.
Type de requête
Requête HTTP POST
Données en entrée
La charge utile de la requête HTTP POST de création d'une annexe a une structure telle qu'illustrée ci-dessous.
<?xml version="1.0" encoding="UTF-8"?>
<Annex>
<containerId>54215</containerId>
<title>LibreOffice</title>
<annexTypeId>csc</annexTypeId>
<file type="file" mimeType="image/png" name="LibreOffice.png">
<part type="base64" number="1">iVBORw0KGgoAAAANSUhEUgAAAMgAAACDCAY...</part>
<part type="base64" number="2">rsnY99YHNva8QBcCTUSEcYClG8RKJv2XU2c...</part>
</file>
</Annex>
Tout d'abord, une annexe étant toujours à insérer dans un objet conteneur, l'identifiant de celui-ci doit être mentionné dans le tag containerId. Ce type d'identifiant est par exemple présent dans la réponse du service create/item lorsque le point est créé avec succès.
Ensuite, l'annexe peut porter un nom évocateur, sans extension, via son tag title.
Dans HubSessions, tout annexe est typée. Quand on parle de type, on ne veut pas se référer au format du fichier, comme PDF ou ODT, mais bien à un type logique, comme Cahier des charges, Avis de marché ou Plan.
L'identifiant de ce type d'annexe doit être spécifié dans le tag annexTypeId.
Notez qu'un HubSessions peut appliquer des restrictions sur le format des annexes (PDF, ODT, etc) qui sont uploadées, mais c'est relativement rare.
Enfin, le contenu du fichier doit se retrouver dans le tag file, comme expliqué dans la page de base décrivant les principes de l'API.
Données de retour
Le service create/annex se conforme au format de retour standardisé tel que décrit ici (à consulter notamment pour connaître la signification des différents codes de retour possibles). Au sein du sous-tag data, l'identifiant technique de l'annexe créée dans HubSessions, ainsi qu'une répétition de l'identifiant de l'objet conteneur spécifié en entrée, sont présents en cas de succès, comme illustré ci-dessous.
<?xml version="1.0" encoding="utf-8" ?>
<Response type="object" className="Response">
<code type="int">0</code>
<text>WS create/annex :: Annex 67221 successfully created in item 54215.</text>
<data type="object" className="Object">
<id type="int">67221</id>
<containerId type="int">54215</containerId>
</data>
</Response>