Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Les articles des workspaces ne sont pas triés par date de modification #1172

Closed
thom4parisot opened this issue Dec 18, 2024 · 3 comments · Fixed by #1173
Closed

Les articles des workspaces ne sont pas triés par date de modification #1172

thom4parisot opened this issue Dec 18, 2024 · 3 comments · Fixed by #1173
Labels

Comments

@thom4parisot
Copy link
Member

Contraitement aux articles du workspace personnel.

image

Je ne comprends pas trop la logique de la méthode workspaceResolver/articles() :

async articles (workspace, _args, context) {
const articles = (await Promise.all(workspace.articles.map((articleId) => context.loaders.articles.load(articleId))))
.filter((a) => a !== undefined) // remove deleted articles
articles.sort((a, b) => a.createdAt > b.createdAt ? -1 : 1)
return Article.complete(articles, context.loaders)
},

Pourquoi ça fonctionne différemment de articleResolver/articles() ?

async articles (_root, args, context) {
const { userId } = isUser(args, context)
return Article.getArticles({
filter: { $or: [{ owner: userId }, { contributors: { $elemMatch: { user: userId } } }] },
loaders: context.loaders
}
)
},
},

@ggrossetie
Copy link
Collaborator

Je pense que c'est parce que les articles n'ont pas de lien avec les espaces de travail. On récupère la liste des identifiants des articles sur l'espace de travail et on charge les articles associés (jointure en mémoire avec les loaders).

Concernant le tri, je ne sais pas trop pourquoi on utilise la date de création plutôt que la date de modification, c'était peut être une demande ou une incohérence...

Enfin, pour le filtre sur les articles supprimés, on devrait surement s'assurer qu'on supprime le lien avec le ou les espaces de travail quand on supprime un article. Et surement faire une migration pour s'assurer qu'on a pas ce cas dans la base de données.

.filter((a) => a !== undefined) // remove deleted articles 

@thom4parisot
Copy link
Member Author

Ah ouais, ok je comprends. Je vais regarder comment faire.

Y'a une raison qu'on gère le tags et les workspaces différemment ? Au sens où les tags sont des entités, et on les référence dans les articles. Alors que les workspaces référencent les articles.

@ggrossetie
Copy link
Collaborator

Les workspaces sont des conteneurs alors que les tags sont libellés qu'on appose sur des "objets". Je trouve ça plus logique d'avoir articles -> tags et workspaces -> articles.
Les articles sont aussi ordonnés dans le workspace, si on fait le lien au niveau des articles on ne perd cette notion d'ordre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants