...
Le plugin WP développé prévoit la creation de pod automatiquement au moment de l'installation de ce dernier. Les pods sont décrits dans des fichiers dédiés, il faudra donc ajouter un fichier pour la nouvelle collection à ce niveau là : https://github.com/univlorraine/multi-wordpress-config/tree/main/includes/pods le mieux est de prendre exemple sur les collections déjà présentes. On pensera à préciser 'is_translatable' => true, pour les champs à traduire et ...'options' => [ 'singleton' => true... pour les collections n'ayant qu'un élément par exemple. (documentation ici : https://github.com/univlorraine/multi-wordpress-config)
Prévoir l'import d'un jeu de données de test dans les mock : https://github.com/univlorraine/esup-multi/tree/main/dev/user-backend-mocksPrévoir l'import d'un jeu de données de test dans :
Côté multi
Adapter le connecteur CMS dans connectors/multi-cms-connector (https://github.com/univlorraine/esup-multi/tree/main/dev/connectors/multi-cms-connector)
Gestion de l'accès à la collection dans WP
Dans src/cms/worpress/collections créer un dossier pour la collection qui contiendra les 4 fichiers :
- coll.wordpress.model.ts : décrit les champs de la collection
- coll.wordpress.module.ts : décrit le module et référence de service et le resolver
- coll.wordpress.resolver.ts : définit les requêtes graphQL qui permettront d'accéder à la collection depuis le backend de multi pour cela il fait appel au service
- coll.wordpress.service.ts : récupère les données de la collection sur le CMS WP
Accès générique aux données
Afin de pouvoir gérer plusieurs types de CMS (Wordpress, Directus... et pourquoi pas d'autres) le connecteur ajoute une couche d'abstraction dans common.
Dans src/common/models créer un fichier coll.model.ts qui décrit les champs de la collection.
Dans src/common/validation/schemas créer un fichier coll.schema.ts qui validera chaque attribut de la collection (champs obligatoire, format, dépendance avec d'autres collections)
Gestion du cache
Ajouter une variable d'environnement pour le cache dans /.env.dist et dans .env sur les serveurs : https://github.com/univlorraine/esup-multi/blob/main/dev/connectors/multi-cms-connector/.env.dist
| Bloc de code |
|---|
# Map points - 1 jour par défaut
CACHE_TTL_MAP_POINTS=86400000 |
Ainsi que la récupération des cette variable et le positionnement d'une valeur par défaut dans (https://github.com/univlorraine/esup-multi/blob/main/dev/connectors/multi-cms-connector/src/cache/cache.config.ts)
| Bloc de code |
|---|
// Fallback values if .env is not configured
const fallbackConfig: Record<CacheCollection, number> = {
[...]
[CacheCollection.MAP_POINTS]: 86400000, // 1 day
}; |