Class: controllerApi

controllerApi()

new controllerApi()

Controleur de la route /api/ (qui répond en json) pour les ressources Toutes les routes contenant /public/ ignorent la session (cookies viré par varnish, cela permet de mettre le résultat en cache et devrait être privilégié pour les ressources publiques) Tout ce qui renvoie une ressource (ou un oid pour du post) accepte en queryString - format=(ref|ressource|full) ref renvoie une ref (toujours avec les _droits), full ajoute la résolution des id (auteurs, relations, groupes…) - droits=1 pour ajouter une propriété _droits (string contenant des lettres parmi RWD)
Source:

Methods

(inner) postRessourceExternalUpdate(context) → {*}

Demande d'update des arbres contenant une Ref
Parameters:
Name Type Description
context
Source:
Returns:
Type
*

DEL /api/public/:oid()

Denied (rerouting interne ressource => public si on a ni session ni token)
Source:

DEL /api/public/:origine/:idOrigine()

Denied (rerouting interne ressource => public si on a ni session ni token)
Source:

DEL /api/ressource/:origine/:idOrigine(:origine, :idOrigine)

Delete par id d'origine ou par rid, retourne reponseDeleted
Parameters:
Name Type Description
:origine string ou baseId si c'était un rid
:idOrigine string ou oid si c'était un rid
Source:

DELETE /api/ressource/:oid(oid)

Delete ressource par oid, retourne reponseDeleted
Parameters:
Name Type Description
oid Integer
Source:

GET /api/autocomplete/:pattern()

Retourne une liste de filtres de recherche qui matchent pattern Retourne un objet {filters: searchFilter[]}, chaque élément du tableau étant searchFilter ({index: string, value: string|number})
Source:

GET /api/baseId?baseUrl=xxx()

Retourne la baseId d'une baseUrl (sesatheque ou sesalab)
Source:

GET /api/clone/:oid()

Clone une ressource de la bibli courante en mettant l'utilisateur courant auteur (si c'est éditable, sinon laisse les auteurs) Cumule les actions createAlias et forkAlias, sauf pour les ressources non éditables où on laisse les auteurs intact (alors que createAlias met toujours l'utilisateur courant en auteur) Utilisé par le bouton dupliquer, retourne la ressource La route devrait être /api/ressource/clone/:oid, mais on a déjà une route qui match 2 arguments après ressource (ressource/:origine/:idOrigine) donc on utilise l'action en premier
Source:

GET /api/createAlias/:baseId/:oid()

Crée un alias de ressource en mettant l'utilisateur courant en auteur (de l'alias) (sinon il pourra pas le supprimer) Ne deviendra une vraie ressource clonée que si on l'édite Retourne Ref Utiliser la méthode sesatheque-client:cloneItem
Source:

GET /api/deconnexion()

Déconnecte l'utilisateur courant
Source:

GET /api/forkAlias/:oid()

Fork un alias et retourne la ressource créée (qui conserve l'oid de l'alias)
Source:

GET /api/jstree?ref=xx[&children=1](ref, childrenopt)

Récupère un arbre au format jstree (cf le plugin arbre pour un exemple d'utilisation)
Parameters:
Name Type Attributes Description
ref string Un oid ou origine/idOrigine
children string <optional>
Passer 1 pour ne récupérer que les enfants
Source:

GET /api/liste()

Récupère des résultats de recherche
Source:

GET /api/liste/auteurs(pids)

Récupère les ressources d'une liste de pids, classée par pid (avec prénom & nom du pid) Retourne reponseListesByPid Utilisé par sesathequeClient.getListeAuteurs()
Parameters:
Name Type Description
pids string la liste de pids séparés par des virgules
Source:

GET /api/liste/perso()

Cherche parmi les ressources du user courant (qui doit être connecté avant) Retourne reponseListe
Parameters:
Type Description
requeteListe
Source:

GET /api/public/:oid(:oid)

Retourne la ressource publique et publiée (sinon 404) d'après son oid Retourne reponseListe
Parameters:
Name Type Description
:oid Integer
Source:

GET /api/public/:origine/:idOrigine(:origine, :idOrigine)

Retourne la ressource publique et publiée (sinon 404) d'après son id d'origine Retourne reponseRessource
Parameters:
Name Type Description
:origine string
:idOrigine string
Source:

GET /api/public/getRid?id=xxx()

Retourne le rid d'une ressource (même privée, juste pour avoir la correspondance origine/idOrigine => rid ou vérifier que l'id existe)
Source:

GET /api/ressource/:oid(oid)

Retourne la ressource d'après son oid (si on a les droit de lecture dessus) Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
oid Integer
Source:

GET /api/ressource/:origine/:idOrigine(:origine, :idOrigine)

Retourne la ressource d'après son id d'origine (si on a les droit de lecture dessus) Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
:origine string
:idOrigine string
Source:

OPTIONS /api/*()

Passe au suivant pour toutes les requetes OPTIONS (traitées par le middleware cors)
Source:

OPTIONS /api/ressource()

Pour le preflight, ajoute aux headers cors habituels le header Access-Control-Allow-Methods:POST OPTIONS
Source:

OPTIONS /api/ressource/addRelations()

Pour le preflight, ajoute aux headers cors habituels le header Access-Control-Allow-Methods:POST OPTIONS
Source:

POST /api/connexion(origine, token)

Loggue un user d'un sesalab localement, répond {success:true} ou {success:false, error:"message d'erreur"} Dupliqué dans app/personne/controllerPersonne.js en html
Parameters:
Name Type Description
origine string L'url de la racine du sesalab appelant (qui doit être déclaré dans le config de la sésathèque), avec préfixe http ou https
token string Le token de sesalab qui servira à récupérer le user
Source:

POST /api/deferPost()

Forward un post vers un sesalab (au unload on ne peut pas poster en crossdomain, on le fait en synchrone ici qui fera suivre)
Source:

POST /api/notifyError()

Une url pour envoyer des notifications d'erreur, à priori par un client qui trouve des incohérences dans ce qu'on lui a envoyé
Source:

POST /api/ressource(Les)

Create / update une ressource Prend un objet ressource, éventuellement incomplète mais oid ou origine/idOrigine sont obligatoires Si le titre et la catégorie sont manquants, ou que l'on passe ?merge=1 à l'url, ça merge avec la ressource existante que l'on update, sinon on écrase (ou on créé si elle n'existait pas) Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
Les object propriétés de la ressource
Source:

POST /api/ressource/addRelations(oidopt, origineopt, idOrigineopt, refopt, relations)

Ajoute des relations à une ressource (pour identifier la ressource on accepte dans le post oid ou origine+idOrigine ou ref) Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Attributes Description
oid Integer <optional>
origine string <optional>
idOrigine string <optional>
ref string <optional>
relations Array
Source:

POST /api/ressource/externalUpdate()

Pour poster une Ref afin de mettre à jour tous les éventuels arbres qui l'utilisent
Source:

POST /api/ressource/registerListener()

Permet à une autre sésathèque d'ajouter un listener ici pour être prévenu sur une modif d'une de nos ressource
Source:

Type Definitions

reponseListe

Format de la réponse à une demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
success boolean
error string <optional>
Message d'erreur éventuel
liste Array.<Ref> | Array.<Ressource> Une liste de Ref (ou de Ressource si on le demande)
Source:

reponseListesByPid

Format de la réponse à une demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
success boolean
error string <optional>
Message d'erreur éventuel
warnings Array.<string> <optional>
Éventuelle liste de warnings (auteurs inconnus)
pidXX object Objet contenant les ressources de pidXX
Properties
Name Type Description
pid string rappel de son pid
label string prénom & nom
liste Array.<Ref> Ses ressources (lisibles par le demandeur)
Source:

requeteArgFilter

Format d'un filtre à passer à une requete de demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
index string Le nom de l'index
values Array <optional>
Une liste de valeurs à chercher (avec des ou), remontera toutes les ressource ayant l'index si omis
Source:

requeteListe

Arguments à donner à une requête qui renvoie une liste de ressources
Type:
  • Object
Properties:
Name Type Attributes Description
json string <optional>
Tous les paramètres qui suivent dans une chaîne json (GET seulement, ignoré en POST)
filters Array.<requeteArgFilter> <optional>
Les filtres à appliquer
orderBy string <optional>
Un nom d'index
order string <optional>
Préciser 'desc' si on veut l'ordre descendant
start Integer <optional>
offset
nb Integer <optional>
Nombre de résultats voulus (Cf settings.ressource.limites.listeNbDefault, à priori 25), sera ramené à settings.ressource.limites.maxSql si supérieur (à priori 500)
format string <optional>
ref|full par défaut on remonte les ressource au format Ref
Source:

controllerApi()

new controllerApi()

Controleur de la route /api/ (qui répond en json) pour les ressources Toutes les routes contenant /public/ ignorent la session (cookies viré par varnish, cela permet de mettre le résultat en cache et devrait être privilégié pour les ressources publiques) Tout ce qui renvoie une ressource (ou un oid pour du post) accepte en queryString - format=(ref|ressource|full) ref renvoie une ref (toujours avec les _droits), full ajoute la résolution des id (auteurs, relations, groupes…) - droits=1 pour ajouter une propriété _droits (string contenant des lettres parmi RWD)
Source:

Methods

(inner) postRessourceExternalUpdate(context) → {*}

Demande d'update des arbres contenant une Ref
Parameters:
Name Type Description
context
Source:
Returns:
Type
*

DEL /api/public/:oid()

Denied (rerouting interne ressource => public si on a ni session ni token)
Source:

DEL /api/public/:origine/:idOrigine()

Denied (rerouting interne ressource => public si on a ni session ni token)
Source:

DEL /api/ressource/:origine/:idOrigine(:origine, :idOrigine)

Delete par id d'origine ou par rid, retourne reponseDeleted
Parameters:
Name Type Description
:origine string ou baseId si c'était un rid
:idOrigine string ou oid si c'était un rid
Source:

DELETE /api/ressource/:oid(oid)

Delete ressource par oid, retourne reponseDeleted
Parameters:
Name Type Description
oid Integer
Source:

GET /api/autocomplete/:pattern()

Retourne une liste de filtres de recherche qui matchent pattern Retourne un objet {filters: searchFilter[]}, chaque élément du tableau étant searchFilter ({index: string, value: string|number})
Source:

GET /api/baseId?baseUrl=xxx()

Retourne la baseId d'une baseUrl (sesatheque ou sesalab)
Source:

GET /api/clone/:oid()

Clone une ressource de la bibli courante en mettant l'utilisateur courant auteur (si c'est éditable, sinon laisse les auteurs) Cumule les actions createAlias et forkAlias, sauf pour les ressources non éditables où on laisse les auteurs intact (alors que createAlias met toujours l'utilisateur courant en auteur) Utilisé par le bouton dupliquer, retourne la ressource La route devrait être /api/ressource/clone/:oid, mais on a déjà une route qui match 2 arguments après ressource (ressource/:origine/:idOrigine) donc on utilise l'action en premier
Source:

GET /api/createAlias/:baseId/:oid()

Crée un alias de ressource en mettant l'utilisateur courant en auteur (de l'alias) (sinon il pourra pas le supprimer) Ne deviendra une vraie ressource clonée que si on l'édite Retourne Ref Utiliser la méthode sesatheque-client:cloneItem
Source:

GET /api/deconnexion()

Déconnecte l'utilisateur courant
Source:

GET /api/forkAlias/:oid()

Fork un alias et retourne la ressource créée (qui conserve l'oid de l'alias)
Source:

GET /api/jstree?ref=xx[&children=1](ref, childrenopt)

Récupère un arbre au format jstree (cf le plugin arbre pour un exemple d'utilisation)
Parameters:
Name Type Attributes Description
ref string Un oid ou origine/idOrigine
children string <optional>
Passer 1 pour ne récupérer que les enfants
Source:

GET /api/liste()

Récupère des résultats de recherche
Source:

GET /api/liste/auteurs(pids)

Récupère les ressources d'une liste de pids, classée par pid (avec prénom & nom du pid) Retourne reponseListesByPid Utilisé par sesathequeClient.getListeAuteurs()
Parameters:
Name Type Description
pids string la liste de pids séparés par des virgules
Source:

GET /api/liste/perso()

Cherche parmi les ressources du user courant (qui doit être connecté avant) Retourne reponseListe
Parameters:
Type Description
requeteListe
Source:

GET /api/public/:oid(:oid)

Retourne la ressource publique et publiée (sinon 404) d'après son oid Retourne reponseListe
Parameters:
Name Type Description
:oid Integer
Source:

GET /api/public/:origine/:idOrigine(:origine, :idOrigine)

Retourne la ressource publique et publiée (sinon 404) d'après son id d'origine Retourne reponseRessource
Parameters:
Name Type Description
:origine string
:idOrigine string
Source:

GET /api/public/getRid?id=xxx()

Retourne le rid d'une ressource (même privée, juste pour avoir la correspondance origine/idOrigine => rid ou vérifier que l'id existe)
Source:

GET /api/ressource/:oid(oid)

Retourne la ressource d'après son oid (si on a les droit de lecture dessus) Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
oid Integer
Source:

GET /api/ressource/:origine/:idOrigine(:origine, :idOrigine)

Retourne la ressource d'après son id d'origine (si on a les droit de lecture dessus) Au format reponseRessource ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
:origine string
:idOrigine string
Source:

OPTIONS /api/*()

Passe au suivant pour toutes les requetes OPTIONS (traitées par le middleware cors)
Source:

OPTIONS /api/ressource()

Pour le preflight, ajoute aux headers cors habituels le header Access-Control-Allow-Methods:POST OPTIONS
Source:

OPTIONS /api/ressource/addRelations()

Pour le preflight, ajoute aux headers cors habituels le header Access-Control-Allow-Methods:POST OPTIONS
Source:

POST /api/connexion(origine, token)

Loggue un user d'un sesalab localement, répond {success:true} ou {success:false, error:"message d'erreur"} Dupliqué dans app/personne/controllerPersonne.js en html
Parameters:
Name Type Description
origine string L'url de la racine du sesalab appelant (qui doit être déclaré dans le config de la sésathèque), avec préfixe http ou https
token string Le token de sesalab qui servira à récupérer le user
Source:

POST /api/deferPost()

Forward un post vers un sesalab (au unload on ne peut pas poster en crossdomain, on le fait en synchrone ici qui fera suivre)
Source:

POST /api/notifyError()

Une url pour envoyer des notifications d'erreur, à priori par un client qui trouve des incohérences dans ce qu'on lui a envoyé
Source:

POST /api/ressource(Les)

Create / update une ressource Prend un objet ressource, éventuellement incomplète mais oid ou origine/idOrigine sont obligatoires Si le titre et la catégorie sont manquants, ou que l'on passe ?merge=1 à l'url, ça merge avec la ressource existante que l'on update, sinon on écrase (ou on créé si elle n'existait pas) Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Description
Les object propriétés de la ressource
Source:

POST /api/ressource/addRelations(oidopt, origineopt, idOrigineopt, refopt, relations)

Ajoute des relations à une ressource (pour identifier la ressource on accepte dans le post oid ou origine+idOrigine ou ref) Retourne reponseRessourceOid ou Ref si on le réclame avec ?format=ref
Parameters:
Name Type Attributes Description
oid Integer <optional>
origine string <optional>
idOrigine string <optional>
ref string <optional>
relations Array
Source:

POST /api/ressource/externalUpdate()

Pour poster une Ref afin de mettre à jour tous les éventuels arbres qui l'utilisent
Source:

POST /api/ressource/registerListener()

Permet à une autre sésathèque d'ajouter un listener ici pour être prévenu sur une modif d'une de nos ressource
Source:

Type Definitions

reponseListe

Format de la réponse à une demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
success boolean
error string <optional>
Message d'erreur éventuel
liste Array.<Ref> | Array.<Ressource> Une liste de Ref (ou de Ressource si on le demande)
Source:

reponseListesByPid

Format de la réponse à une demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
success boolean
error string <optional>
Message d'erreur éventuel
warnings Array.<string> <optional>
Éventuelle liste de warnings (auteurs inconnus)
pidXX object Objet contenant les ressources de pidXX
Properties
Name Type Description
pid string rappel de son pid
label string prénom & nom
liste Array.<Ref> Ses ressources (lisibles par le demandeur)
Source:

requeteArgFilter

Format d'un filtre à passer à une requete de demande de liste
Type:
  • Object
Properties:
Name Type Attributes Description
index string Le nom de l'index
values Array <optional>
Une liste de valeurs à chercher (avec des ou), remontera toutes les ressource ayant l'index si omis
Source:

requeteListe

Arguments à donner à une requête qui renvoie une liste de ressources
Type:
  • Object
Properties:
Name Type Attributes Description
json string <optional>
Tous les paramètres qui suivent dans une chaîne json (GET seulement, ignoré en POST)
filters Array.<requeteArgFilter> <optional>
Les filtres à appliquer
orderBy string <optional>
Un nom d'index
order string <optional>
Préciser 'desc' si on veut l'ordre descendant
start Integer <optional>
offset
nb Integer <optional>
Nombre de résultats voulus (Cf settings.ressource.limites.listeNbDefault, à priori 25), sera ramené à settings.ressource.limites.maxSql si supérieur (à priori 500)
format string <optional>
ref|full par défaut on remonte les ressource au format Ref
Source: