All files / src/controllers/statistics-controllers getYearStatisticsDocument.js

27.27% Statements 3/11
62.5% Branches 5/8
33.33% Functions 1/3
20% Lines 2/10

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 27 28 29 30 31 32 33 34 35              2x 2x                                                    
import cacheOrQuery from "../../cache/cacheOrQuery.js";
import { MONTHES } from "../../CONSTANT/MONTHES.js"
import YearlyStatisticsModel from "../../models/YearlyStatistics.js";
import SettingsController from "../../controllers/settings-controllers/SettingsController.js";
 
export default async function getYearStatisticsDocument(year = new Date().getFullYear(), { createDirectly, save } = {}) {
 
    const yearStatistics = !createDirectly && await YearlyStatisticsModel.findOne({ year });
    if (yearStatistics) return yearStatistics;
    else E{
        const storeVariables = await cacheOrQuery("store-variables", SettingsController.getStoreVariables());
        const productsCategories = storeVariables.productsCategories
        const newYearStatisticsDocument = new YearlyStatisticsModel({
            year,
            categories: productsCategories.map((category) => {
                return {
                    category,
                    monthlyStatistics: MONTHES.map((month) => {
                        return {
                            month,
                            totalEarnings: 0,
                            productsSold: 0
                        }
                    })
                }
            })
        })
 
        if (save) {
            await newYearStatisticsDocument.save()
        }
 
        return newYearStatisticsDocument;
    }
}