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=PublicCharger 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/:churchIdPublicLister les pages publiques (url, title, metaDescription) ; uniquement visibility = everyone
GET/:idJWTObtenir une page par ID
GET/JWTLister 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/:idJWTObtenir 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/:idJWTObtenir 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/:idJWTObtenir un bloc par ID
GET/JWTLister tous les blocs
GET/:churchId/tree/:idPublicCharger l'arborescence complète d'un bloc avec ses sections et éléments
GET/blockType/:blockTypeJWTCharger les blocs par type (par ex. footerBlock, elementBlock)
GET/public/footer/:churchIdPublicCharger 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/:idJWTObtenir un lien par ID
GET/JWTLister tous les liens. Filtre optionnel ?category=. Tri automatique après enregistrement
GET/church/:churchId/filtered?category=JWTCharger les liens filtrés par visibilité (tout le monde, visiteurs, membres, personnel, groupes)
GET/church/:churchId?category=PublicCharger 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/:churchIdPublicCharger les styles globaux d'une église (renvoie les valeurs par défaut si aucun n'est défini)
GET/JWTCharger 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=PublicLister les articles publiés, paginés (max 50 par page)
GET/public/:churchId/categoriesPublicCatégories distinctes parmi les articles publiés
GET/public/:churchId/slug/:slugPublicObtenir un article publié par slug
GET/rss/:churchId?siteUrl=PublicFlux RSS 2.0 des articles publiés (liens construits comme {siteUrl}/blog/{slug})
GET/:idJWTObtenir un article par ID
GET/JWTLister 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 (fromPathtoPath), 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=PublicRésoudre un chemin (ou lister toutes les redirections si path est omis)
GET/:idJWTObtenir une redirection par ID
GET/JWTLister 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/freeshowSampleJWTObtenir une structure d'exemple de liste de lecture FreeShow
GET/public/tvWrapper/:churchIdJWTObtenir l'enveloppe de l'application TV avec les sources de prédication, de leçon et de FreeShow
GET/public/tvFeed/:churchId/:sermonIdPublicObtenir une seule prédication en tant que liste de lecture de flux TV
GET/public/tvFeed/:churchIdPublicObtenir toutes les listes de lecture/prédications publiques en tant que flux TV
GET/public/:churchIdPublicLister toutes les prédications publiques d'une église
GET/timeline?sermonIds=JWTCharger les données de timeline pour des prédications
GET/lookup?videoType=&videoData=PublicRechercher les métadonnées d'une prédication depuis YouTube ou Vimeo
GET/socialSuggestions?youtubeVideoId=JWTGé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=JWTGénérer un plan de leçon par IA à partir d'une URL
GET/youtubeImport/:channelIdJWTImporter des vidéos depuis une chaîne YouTube
GET/vimeoImport/:channelIdJWTImporter des vidéos depuis une chaîne Vimeo
GET/:idJWTObtenir une prédication par ID
GET/JWTLister 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/:idJWTObtenir une liste de lecture par ID
GET/JWTLister toutes les listes de lecture
GET/public/:churchIdPublicLister 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/JWTLister 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=JWTCharger les événements de timeline pour un groupe
GET/timeline?eventIds=JWTCharger les événements de timeline pour les groupes de l'utilisateur actuel
GET/subscribe?churchId=&groupId=&curatedCalendarId=PublicS'abonner aux événements sous forme de flux calendrier ICS
GET/group/:groupIdJWTObtenir les événements d'un groupe (inclut les dates d'exception)
GET/public/group/:churchId/:groupIdPublicObtenir les événements publics d'un groupe
GET/:idJWTObtenir un événement par ID
POST/JWTCré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/:idJWTObtenir 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/:idJWTObtenir un calendrier organisé par ID
GET/JWTLister 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?withoutEventsJWTObtenir 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/:curatedCalendarIdPublicObtenir les événements organisés publics pour un calendrier
GET/:idJWTObtenir un événement organisé par ID
GET/JWTLister 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/:contentIdJWTObtenir des fichiers par type et ID de contenu
GET/JWTLister tous les fichiers du site web de l'église
GET/:idJWTObtenir 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/:folderPublicLister 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/PublicLister toutes les traductions bibliques (récupère depuis la source si le cache est vide)
GET/stats?startDate=&endDate=PublicObtenir les statistiques de recherche biblique pour une plage de dates
GET/availableTranslations/:sourcePublicLister les traductions disponibles d'une source (par ex. api.bible)
GET/updateTranslationsPublicSynchroniser toutes les traductions de toutes les sources
GET/updateTranslations/:sourcePublicSynchroniser les traductions d'une source spécifique
GET/updateCopyrightsPublicMettre à jour les informations de copyright des traductions qui en manquent
GET/:translationKey/updateCopyrightPublicMettre à jour le copyright d'une traduction spécifique
GET/:translationKey/search?query=&limit=PublicRechercher des versets dans une traduction
GET/:translationKey/booksPublicObtenir les livres d'une traduction (mis en cache localement)
GET/:translationKey/:bookKey/chaptersPublicObtenir les chapitres d'un livre (mis en cache localement)
GET/:translationKey/chapters/:chapterKey/versesPublicObtenir les versets d'un chapitre (mis en cache localement)
GET/:translationKey/verses/:startVerseKey-:endVerseKeyPublicObtenir 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=JWTRechercher des chants par requête
GET/:idJWTObtenir un chant par ID
GET/JWTContent.EditLister tous les chants
POST/JWTContent.EditCréer ou mettre à jour des chants (par lot)
POST/importJWTImporter 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/:idJWTObtenir un détail de chant par ID (global)
GET/JWTLister les détails de chant de l'église
POST/createJWTCré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/JWTCréer ou mettre à jour des détails de chant (par lot)

Chemin de base : /content/songDetailLinks

MéthodeCheminAuthPermissionDescription
GET/:idJWTObtenir un lien de détail de chant par ID
GET/songDetail/:songDetailIdJWTObtenir tous les liens d'un détail de chant
POST/JWTCréer ou mettre à jour des liens de détail de chant (par lot). Récupère automatiquement les données MusicBrainz si lié
DELETE/:idJWTSupprimer un lien de détail de chant

Arrangements

Chemin de base : /content/arrangements

MéthodeCheminAuthPermissionDescription
GET/:idJWTObtenir 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/missingJWTTrouver 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/:idPublicObtenir une tonalité d'arrangement avec les données complètes du chant pour la vue présentateur
GET/:idJWTObtenir 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/myJWTObtenir les paramètres de l'utilisateur actuel
GET/JWTSettings.EditObtenir tous les paramètres de l'église
GET/public/:churchIdPublicObtenir les paramètres publics d'une église (renvoyés sous forme de paires clé-valeur)
POST/myJWTEnregistrer 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/:idJWTSupprimer un paramètre utilisateur

Preview

Chemin de base : /content/preview

MéthodeCheminAuthPermissionDescription
GET/data/:keyPublicCharger 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/searchPublicRechercher 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/:idJWTObtenir les données brutes PraiseCharts d'un chant
GET/hasAccountJWTVérifier si l'utilisateur a un compte PraiseCharts lié
GET/search?q=JWTRechercher dans le catalogue PraiseCharts
GET/products/:id?keys=JWTObtenir les produits d'un chant (depuis la bibliothèque si authentifié, sinon depuis le catalogue)
GET/arrangement/raw/:id?keys=JWTObtenir les données brutes d'arrangement depuis la bibliothèque
GET/download?skus=&keys=&file_name=JWTTélécharger un fichier depuis PraiseCharts (PDF ou ZIP). Renvoie { redirectUrl }
GET/authUrl?returnUrl=PublicObtenir 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/libraryJWTParcourir la bibliothèque PraiseCharts de l'utilisateur

Support

Chemin de base : /content/support

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

Pages connexes