45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
const moment = require('moment')
|
|
const API_Usage = require("../models/API_Usage.js")
|
|
|
|
async function billingSumUsage(startDate, endDate, companyId) {
|
|
try {
|
|
const start = moment(startDate, 'YYYY-MM-DD').startOf('day').toDate()
|
|
const end = moment(endDate, 'YYYY-MM-DD').endOf('day').toDate()
|
|
|
|
const result = await API_Usage.aggregate([
|
|
{
|
|
$match: {
|
|
createdAt: {
|
|
$gte: start,
|
|
$lte: end
|
|
},
|
|
companyId
|
|
}
|
|
},
|
|
{
|
|
$group: {
|
|
_id: null,
|
|
total: {
|
|
$sum: {
|
|
$toDouble: "$price"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
])
|
|
|
|
if (result.length > 0) {
|
|
return result[0].total
|
|
} else {
|
|
return 0
|
|
}
|
|
} catch (error) {
|
|
console.error('Error calculating sum of prices:', error)
|
|
}
|
|
}
|
|
|
|
module.exports = billingSumUsage
|
|
|
|
|
|
|