All files / src/app/repositories article.repository.js

100% Statements 7/7
100% Branches 2/2
100% Functions 1/1
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26        5x     5x         5x 3x   3x 6x       5x          
import Article from "@models/article.model.js";
 
class ArticleRepository {
    async filter(text, tags) {
        const article = await new Article();
 
        // Search for text in the article title (case insensitive)
        const query = {
            title: { $regex: String(text), $options: "i" },
        };
 
        // Optionally, the article must ALSO contain one of the given tags
        if (tags.length) {
            query.$or = [];
 
            for (let tag of tags) {
                query.$or.push({ tags: String(tag) });
            }
        }
 
        return await article.find(query);
    }
}
 
export default ArticleRepository;