App
Principes
- Les documents sont peu nombreux, donc le endpoint retourne tous les documents sans le contenu.
- Le filtrage et recherche sont effectués sur le client.
- Les correspondances entres les tags et les icônes et les couleurs sont en dur côté client avec une valeur par défaut.
- Les documents internes sont au format Markdown ou HTML.
Types généraux
enum DocumentType {
PDF
LINK
MARKDOWN
HTML
}FileMedia
Endpoints API
GET One media
// GET /public/medias/:id -> FileMedia
interface FileMedia {
id: string
name: string
mimeType: string
size: number
}// GET /public/medias/:id/download -> 200 BinaryTags
Endpoints API
GET All tags
// GET /public/tags-categories -> 200 TagCategory[]
interface TagCategory {
id: string
name: string
tags: Tag[]
}
interface Tag {
id: string
name: string
categoryId: string
}Listing
Endpoints API
GET All Documents
// GET /public/documents -> DocumentShort[]
type DocumentShort {
id: string
title: string
type: DocumentType
url: string?
tagsIds: string[]
}Règles de gestion
- L'application récupère tous les documents.
- Le filtrage par tags est réalisé localement et plusieurs tags peuvent être mixés.
- Le filtrage est appliqué avec un
ORau sein d'une même catégorie de tags, puis unANDentre les catégories. - Le filtrage par recherche libre est effectué sur le titre et le nom des tags.
- La catégorie principale (icône et couleur) est la première retournée.
Detail
Endpoints API
GET Document Detail
// GET /public/documents/:id/detail -> Document
type Document {
id: string
title: string
type: DocumentType
url: string?
tagsIds: string[]
content: string?
sources: string[]
file?: { id: string, name: string }
// relatedDocuments: DocumentShort[] - TO BE DEFINED
}GET Document File
// GET /public/documents/:id/download -> BinaryRègles de gestion
- Selon le type de document, le client a le comportement approprié :
- PDF : Ouverture dans une webview native.
- LINK : Ouverture dans une webview native.
- HTML/MARKDOWN : Ouverture dans une page Flutter.
- Le
iouvre les sources, et il disparait s'il n'y a pas de sources. - Le bouton
Signaler une erreurouvre la popin native d'envoi d'email à l'adresse :MODERATOR_EMAIL
Actions
- Définir le mode de sélection des articles complémentaires
- Définir l'adresse email de modération
MODERATOR_EMAIL