Aller au contenu principal

Points de terminaison Content

Le module Content gère les pages de site web, les sections, les éléments, les blocs, les articles de blog, les redirections, les prédications, les listes de lecture, les services de streaming, les événements, les calendriers organisés, les fichiers, les galeries, les traductions bibliques et les recherches de versets, les chants, les arrangements, les styles globaux, les photos d'archives et les paramètres. C'est le plus grand module de l'API, et il alimente le CMS, les médias/streaming, la planification du culte et les fonctionnalités bibliques dans toutes les applications ChurchApps.

Chemin de base : /content

Pages​

Chemin de base : /content/pages

MéthodeCheminAuthPermissionDescription
GET/:churchId/tree?url=&id=Public—Charger l'arborescence complète d'une page (sections, éléments, blocs) par URL ou par ID. Retire les ID internes lors d'une récupération par URL. Les récupérations par URL appliquent pages.visibility -- une page restreinte renvoie { restricted: true, visibility } sauf si le JWT (optionnel) satisfait la restriction
GET/public/:churchIdPublic—Lister les pages publiques (url, title, metaDescription) ; uniquement visibility = everyone
GET/:idJWT—Obtenir une page par ID
GET/JWT—Lister toutes les pages de l'église
POST/duplicate/:idJWTContent.EditDupliquer une page avec toutes ses sections et éléments
POST/temp/aiJWTContent.EditEnregistrer une page générée par IA (page, sections et éléments en un seul appel)
POST/JWTContent.EditCréer ou mettre à jour des pages (par lot)
DELETE/:idJWTContent.EditSupprimer une page

Exemple : charger l'arborescence d'une page​

GET /content/pages/abc-church-id/tree?url=/about
{
"name": "About",
"url": "/about",
"sections": [
{
"background": "#FFFFFF",
"textColor": "dark",
"elements": [
{ "elementType": "textWithPhoto", "answers": { "text": "Welcome" } }
]
}
]
}

Sections​

Chemin de base : /content/sections

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir une section par ID
POST/duplicate/:id?convertToBlock=JWTContent.EditDupliquer une section ou la convertir en bloc réutilisable
POST/JWTContent.EditCréer ou mettre à jour des sections (par lot). Met à jour automatiquement l'ordre de tri
DELETE/:idJWTContent.EditSupprimer une section (met à jour automatiquement l'ordre de tri)

Elements​

Chemin de base : /content/elements

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un élément par ID
POST/duplicate/:idJWTContent.EditDupliquer un élément avec tous ses enfants
POST/JWTContent.EditCréer ou mettre à jour des éléments (par lot). Gère automatiquement les colonnes de rangée et les diapositives de carrousel
DELETE/:idJWTContent.EditSupprimer un élément

Blocks​

Chemin de base : /content/blocks

Étend le CRUD standard (GET /:id, GET /, POST /, DELETE /:id de la classe de base, avec la permission Content.Edit pour les écritures).

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un bloc par ID
GET/JWT—Lister tous les blocs
GET/:churchId/tree/:idPublic—Charger l'arborescence complète d'un bloc avec ses sections et éléments
GET/blockType/:blockTypeJWT—Charger les blocs par type (par ex. footerBlock, elementBlock)
GET/public/footer/:churchIdPublic—Charger l'arborescence du bloc de pied de page pour une église
POST/JWTContent.EditCréer ou mettre à jour des blocs
DELETE/:idJWTContent.EditSupprimer un bloc

Chemin de base : /content/links

Étend le CRUD standard (GET /:id, GET /, POST /, DELETE /:id de la classe de base, avec la permission Content.Edit pour les écritures).

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un lien par ID
GET/JWT—Lister tous les liens. Filtre optionnel ?category=. Tri automatique après enregistrement
GET/church/:churchId/filtered?category=JWT—Charger les liens filtrés par visibilité (tout le monde, visiteurs, membres, personnel, groupes)
GET/church/:churchId?category=Public—Charger les liens d'une église par catégorie (public)
POST/JWTContent.EditCréer ou mettre à jour des liens (par lot). Tri automatique par catégorie
DELETE/:idJWTContent.EditSupprimer un lien

Global Styles​

Chemin de base : /content/globalStyles

Étend le CRUD standard (POST /, DELETE /:id de la classe de base, avec la permission Content.Edit pour les écritures).

MéthodeCheminAuthPermissionDescription
GET/church/:churchIdPublic—Charger les styles globaux d'une église (renvoie les valeurs par défaut si aucun n'est défini)
GET/JWT—Charger les styles globaux de l'église authentifiée
POST/JWTContent.EditCréer ou mettre à jour les styles globaux
DELETE/:idJWTContent.EditSupprimer les styles globaux

Page History​

Chemin de base : /content/pageHistory

MéthodeCheminAuthPermissionDescription
GET/page/:pageIdJWTContent.EditLister les entrées d'historique d'une page
GET/block/:blockIdJWTContent.EditLister les entrées d'historique d'un bloc
GET/:idJWTContent.EditObtenir une entrée d'historique par ID
POST/JWTContent.EditEnregistrer un instantané de page/bloc. Nettoie périodiquement les entrées de plus de 30 jours
POST/restore/:idJWTContent.EditRestaurer une page/bloc depuis un instantané d'historique (supprime le contenu actuel et le recrée depuis l'instantané)
POST/restoreSnapshotJWTContent.EditRestaurer depuis un objet instantané en ligne. Corps : { pageId, blockId, snapshot }

Posts (Blog)​

Chemin de base : /content/posts

Les articles de blog sont des lignes autonomes : title, slug (unique par église), excerpt, content (corps en markdown), authorId, photoUrl, publishDate, category, et tags. Un article est publié dès que publishDate est défini et dans le passé. Les points de terminaison de lecture enrichissent chaque article avec authorName résolu depuis authorId. Voir Architecture du générateur de sites web.

MéthodeCheminAuthPermissionDescription
GET/public/:churchId?category=&tag=&page=&pageSize=Public—Lister les articles publiés, paginés (max 50 par page)
GET/public/:churchId/categoriesPublic—Catégories distinctes parmi les articles publiés
GET/public/:churchId/slug/:slugPublic—Obtenir un article publié par slug
GET/rss/:churchId?siteUrl=Public—Flux RSS 2.0 des articles publiés (liens construits comme {siteUrl}/blog/{slug})
GET/:idJWT—Obtenir un article par ID
GET/JWT—Lister tous les articles de l'église
POST/JWTContent.EditCréer ou mettre à jour des articles (par lot)
DELETE/:idJWTContent.EditSupprimer un article

Redirects​

Chemin de base : /content/redirects

Redirections d'URL par église (fromPath → toPath), plafonnées à 200 par église. Les chemins sont normalisés (minuscules, barre oblique de tête, pas de barre oblique finale) et fromPath est unique par église. B1App résout ces redirections lors des 404 potentiels et émet un HTTP 308.

MéthodeCheminAuthPermissionDescription
GET/public/:churchId?path=Public—Résoudre un chemin (ou lister toutes les redirections si path est omis)
GET/:idJWT—Obtenir une redirection par ID
GET/JWT—Lister toutes les redirections de l'église
POST/JWTContent.EditCréer ou mettre à jour des redirections. Rejette fromPath = toPath et applique le plafond de 200 lignes
DELETE/:idJWTContent.EditSupprimer une redirection

Sermons​

Chemin de base : /content/sermons

MéthodeCheminAuthPermissionDescription
GET/public/freeshowSampleJWT—Obtenir une structure d'exemple de liste de lecture FreeShow
GET/public/tvWrapper/:churchIdJWT—Obtenir l'enveloppe de l'application TV avec les sources de prédication, de leçon et de FreeShow
GET/public/tvFeed/:churchId/:sermonIdPublic—Obtenir une seule prédication en tant que liste de lecture de flux TV
GET/public/tvFeed/:churchIdPublic—Obtenir toutes les listes de lecture/prédications publiques en tant que flux TV
GET/public/:churchIdPublic—Lister toutes les prédications publiques d'une église
GET/timeline?sermonIds=JWT—Charger les données de timeline pour des prédications
GET/lookup?videoType=&videoData=Public—Rechercher les métadonnées d'une prédication depuis YouTube ou Vimeo
GET/socialSuggestions?youtubeVideoId=JWT—Générer des suggestions de publications pour les réseaux sociaux par IA à partir des sous-titres de la prédication
GET/outline?url=&title=&author=JWT—Générer un plan de leçon par IA à partir d'une URL
GET/youtubeImport/:channelIdJWT—Importer des vidéos depuis une chaîne YouTube
GET/vimeoImport/:channelIdJWT—Importer des vidéos depuis une chaîne Vimeo
GET/:idJWT—Obtenir une prédication par ID
GET/JWT—Lister toutes les prédications
POST/JWTStreamingServices.EditCréer ou mettre à jour des prédications (par lot, prend en charge le téléversement de miniature en base64)
DELETE/:idJWTStreamingServices.EditSupprimer une prédication

Exemple : rechercher une prédication YouTube​

GET /content/sermons/lookup?videoType=youtube&videoData=dQw4w9WgXcQ
{
"title": "Sunday Service - Faith in Action",
"description": "Pastor John speaks about faith...",
"thumbnail": "https://img.youtube.com/vi/dQw4w9WgXcQ/default.jpg",
"duration": 2400,
"publishDate": "2025-01-15T10:00:00Z"
}

Playlists​

Chemin de base : /content/playlists

Étend le CRUD standard (GET /:id, GET /, DELETE /:id de la classe de base, avec la permission StreamingServices.Edit pour les écritures).

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir une liste de lecture par ID
GET/JWT—Lister toutes les listes de lecture
GET/public/:churchIdPublic—Lister toutes les listes de lecture publiques d'une église
POST/JWTStreamingServices.EditCréer ou mettre à jour des listes de lecture (par lot, prend en charge le téléversement de miniature en base64)
DELETE/:idJWTStreamingServices.EditSupprimer une liste de lecture

Streaming Services​

Chemin de base : /content/streamingServices

MéthodeCheminAuthPermissionDescription
GET/:id/hostChatJWTChat.HostObtenir l'ID chiffré du salon de chat de l'hôte pour un service
GET/JWT—Lister tous les services de streaming. Nettoie automatiquement les services non récurrents expirés et fait avancer les services récurrents
POST/JWTStreamingServices.EditCréer ou mettre à jour des services de streaming (par lot)
DELETE/:idJWTStreamingServices.EditSupprimer un service de streaming (efface aussi les IP bloquées)

Events​

Chemin de base : /content/events

MéthodeCheminAuthPermissionDescription
GET/timeline/group/:groupId?eventIds=JWT—Charger les événements de timeline pour un groupe
GET/timeline?eventIds=JWT—Charger les événements de timeline pour les groupes de l'utilisateur actuel
GET/subscribe?churchId=&groupId=&curatedCalendarId=Public—S'abonner aux événements sous forme de flux calendrier ICS
GET/group/:groupIdJWT—Obtenir les événements d'un groupe (inclut les dates d'exception)
GET/public/group/:churchId/:groupIdPublic—Obtenir les événements publics d'un groupe
GET/:idJWT—Obtenir un événement par ID
POST/JWT—Créer ou mettre à jour des événements (par lot)
DELETE/:idJWTContent.EditSupprimer un événement

Event Exceptions​

Chemin de base : /content/eventExceptions

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir une exception d'événement par ID
POST/JWTContent.EditCréer ou mettre à jour des exceptions d'événement (par lot)
DELETE/:idJWTContent.EditSupprimer une exception d'événement

Curated Calendars​

Chemin de base : /content/curatedCalendars

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un calendrier organisé par ID
GET/JWT—Lister tous les calendriers organisés
POST/JWTContent.EditCréer ou mettre à jour des calendriers organisés (par lot)
DELETE/:idJWTContent.EditSupprimer un calendrier organisé

Curated Events​

Chemin de base : /content/curatedEvents

MéthodeCheminAuthPermissionDescription
GET/calendar/:curatedCalendarId?withoutEventsJWT—Obtenir les événements organisés pour un calendrier (inclut les détails d'événement et les dates d'exception, sauf si ?withoutEvents est défini)
GET/public/calendar/:churchId/:curatedCalendarIdPublic—Obtenir les événements organisés publics pour un calendrier
GET/:idJWT—Obtenir un événement organisé par ID
GET/JWT—Lister tous les événements organisés
POST/JWTContent.EditCréer ou mettre à jour des événements organisés. Prend en charge un tableau eventIds pour ajouter des événements de groupe spécifiques
DELETE/:idJWTContent.EditSupprimer un événement organisé
DELETE/calendar/:curatedCalendarId/event/:eventIdJWTContent.EditRetirer un événement spécifique d'un calendrier organisé
DELETE/calendar/:curatedCalendarId/group/:groupIdJWTContent.EditRetirer tous les événements d'un groupe d'un calendrier organisé

Files​

Chemin de base : /content/files

MéthodeCheminAuthPermissionDescription
GET/:contentType/:contentIdJWT—Obtenir des fichiers par type et ID de contenu
GET/JWT—Lister tous les fichiers du site web de l'église
GET/:idJWT—Obtenir un fichier par ID
POST/JWTContent.Edit*Téléverser des fichiers (base64). *Également autorisé si l'utilisateur est membre du groupe correspondant à contentId
POST/postUrlJWTContent.Edit*Obtenir une URL de téléversement S3 pré-signée. *Également autorisé pour les membres du groupe. Max 100 Mo par élément de contenu
DELETE/:idJWTContent.Edit*Supprimer un fichier et le retirer du stockage. *Également autorisé pour les membres du groupe

Chemin de base : /content/gallery

MéthodeCheminAuthPermissionDescription
GET/stock/:folderPublic—Lister les photos d'archives d'un dossier
GET/:folderJWTContent.EditLister les images de la galerie d'un dossier
POST/requestUploadJWTContent.EditObtenir une URL de téléversement S3 pré-signée pour une image de galerie
DELETE/:folder/:imageJWTContent.EditSupprimer une image de galerie

Bibles​

Chemin de base : /content/bibles

Tous les points de terminaison Bible sont publics (aucune authentification requise). Les données sont récupérées depuis des sources externes et mises en cache localement.

MéthodeCheminAuthPermissionDescription
GET/Public—Lister toutes les traductions bibliques (récupère depuis la source si le cache est vide)
GET/stats?startDate=&endDate=Public—Obtenir les statistiques de recherche biblique pour une plage de dates
GET/availableTranslations/:sourcePublic—Lister les traductions disponibles d'une source (par ex. api.bible)
GET/updateTranslationsPublic—Synchroniser toutes les traductions de toutes les sources
GET/updateTranslations/:sourcePublic—Synchroniser les traductions d'une source spécifique
GET/updateCopyrightsPublic—Mettre à jour les informations de copyright des traductions qui en manquent
GET/:translationKey/updateCopyrightPublic—Mettre à jour le copyright d'une traduction spécifique
GET/:translationKey/search?query=&limit=Public—Rechercher des versets dans une traduction
GET/:translationKey/booksPublic—Obtenir les livres d'une traduction (mis en cache localement)
GET/:translationKey/:bookKey/chaptersPublic—Obtenir les chapitres d'un livre (mis en cache localement)
GET/:translationKey/chapters/:chapterKey/versesPublic—Obtenir les versets d'un chapitre (mis en cache localement)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublic—Obtenir le texte des versets pour une plage. Journalise les recherches. Certaines traductions contournent la mise en cache pour des raisons de licence

Exemple : obtenir le texte d'un verset​

GET /content/bibles/de4e12af7f28f599-02/verses/GEN.1.1-GEN.1.3
[
{ "verseKey": "GEN.1.1", "content": "In the beginning God created the heavens and the earth.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 1 },
{ "verseKey": "GEN.1.2", "content": "Now the earth was formless and empty...", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 2 },
{ "verseKey": "GEN.1.3", "content": "And God said, \"Let there be light,\" and there was light.", "bookKey": "GEN", "chapterNumber": 1, "verseNumber": 3 }
]

Songs​

Chemin de base : /content/songs

MéthodeCheminAuthPermissionDescription
GET/search?q=JWT—Rechercher des chants par requête
GET/:idJWT—Obtenir un chant par ID
GET/JWTContent.EditLister tous les chants
POST/JWTContent.EditCréer ou mettre à jour des chants (par lot)
POST/importJWT—Importer des chants depuis FreeShow (par lot)
DELETE/:idJWTContent.EditSupprimer un chant

Song Details​

Chemin de base : /content/songDetails

Les détails de chant sont globaux (non délimités par église). Ils représentent des métadonnées de chant canoniques partagées entre les églises.

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un détail de chant par ID (global)
GET/JWT—Lister les détails de chant de l'église
POST/createJWT—Créer un détail de chant à partir d'un ID PraiseCharts (renvoie l'existant s'il a déjà été créé). Récupère automatiquement les métadonnées depuis PraiseCharts et MusicBrainz
POST/JWT—Créer ou mettre à jour des détails de chant (par lot)

Chemin de base : /content/songDetailLinks

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un lien de détail de chant par ID
GET/songDetail/:songDetailIdJWT—Obtenir tous les liens d'un détail de chant
POST/JWT—Créer ou mettre à jour des liens de détail de chant (par lot). Récupère automatiquement les données MusicBrainz si lié
DELETE/:idJWT—Supprimer un lien de détail de chant

Arrangements​

Chemin de base : /content/arrangements

MéthodeCheminAuthPermissionDescription
GET/:idJWT—Obtenir un arrangement par ID
GET/song/:songIdJWTContent.EditObtenir les arrangements d'un chant
GET/songDetail/:songDetailIdJWTContent.EditObtenir les arrangements d'un détail de chant
GET/JWTContent.EditLister tous les arrangements
POST/JWTContent.EditCréer ou mettre à jour des arrangements (par lot)
POST/freeShow/missingJWT—Trouver les ID FreeShow qui n'existent pas dans l'église. Corps : { freeShowIds: string[] }
DELETE/:idJWTContent.EditSupprimer un arrangement (supprime aussi les tonalités ; supprime le chant s'il ne reste aucun arrangement)

Arrangement Keys​

Chemin de base : /content/arrangementKeys

MéthodeCheminAuthPermissionDescription
GET/presenter/:churchId/:idPublic—Obtenir une tonalité d'arrangement avec les données complètes du chant pour la vue présentateur
GET/:idJWT—Obtenir une tonalité d'arrangement par ID
GET/arrangement/:arrangementIdJWTContent.EditObtenir les tonalités d'un arrangement
GET/JWTContent.EditLister toutes les tonalités d'arrangement
POST/JWTContent.EditCréer ou mettre à jour des tonalités d'arrangement (par lot)
DELETE/:idJWTContent.EditSupprimer une tonalité d'arrangement

Settings​

Chemin de base : /content/settings

MéthodeCheminAuthPermissionDescription
GET/myJWT—Obtenir les paramètres de l'utilisateur actuel
GET/JWTSettings.EditObtenir tous les paramètres de l'église
GET/public/:churchIdPublic—Obtenir les paramètres publics d'une église (renvoyés sous forme de paires clé-valeur)
POST/myJWT—Enregistrer les paramètres au niveau utilisateur (prend en charge le téléversement d'image en base64)
POST/JWTSettings.EditEnregistrer les paramètres au niveau de l'église (prend en charge le téléversement d'image en base64)
DELETE/my/:idJWT—Supprimer un paramètre utilisateur

Preview​

Chemin de base : /content/preview

MéthodeCheminAuthPermissionDescription
GET/data/:keyPublic—Charger les données d'aperçu de streaming d'une église par clé de sous-domaine (onglets, liens, services, prédications)

Chemin de base : /content/stock

MéthodeCheminAuthPermissionDescription
POST/searchPublic—Rechercher des photos d'archives Pexels. Corps : { term: "church" }

PraiseCharts​

Chemin de base : /content/praiseCharts

Intégration avec PraiseCharts pour la découverte de chants de culte et le téléchargement de partitions.

MéthodeCheminAuthPermissionDescription
GET/raw/:idJWT—Obtenir les données brutes PraiseCharts d'un chant
GET/hasAccountJWT—Vérifier si l'utilisateur a un compte PraiseCharts lié
GET/search?q=JWT—Rechercher dans le catalogue PraiseCharts
GET/products/:id?keys=JWT—Obtenir les produits d'un chant (depuis la bibliothèque si authentifié, sinon depuis le catalogue)
GET/arrangement/raw/:id?keys=JWT—Obtenir les données brutes d'arrangement depuis la bibliothèque
GET/download?skus=&keys=&file_name=JWT—Télécharger un fichier depuis PraiseCharts (PDF ou ZIP). Renvoie { redirectUrl }
GET/authUrl?returnUrl=Public—Obtenir l'URL d'autorisation OAuth pour PraiseCharts
GET/access?verifier=&token=&secret=JWT—Échanger le vérificateur OAuth contre un jeton d'accès et l'enregistrer dans les paramètres utilisateur
GET/libraryJWT—Parcourir la bibliothèque PraiseCharts de l'utilisateur

Support​

Chemin de base : /content/support

MéthodeCheminAuthPermissionDescription
POST/createAudioPublic—Convertir du SSML en audio MP3 avec AWS Polly. Corps : { ssml: "<speak>...</speak>" }

Pages connexes​