Compare commits

...

5 Commits

2 changed files with 50 additions and 33 deletions

View File

@ -28,6 +28,10 @@ const setApiPricing = async (req, res) => {
let filter = { provider: normalizedProvider, product: normalizedProduct }
if(format){
filter = {...filter, format}
}
if (type) {
filter = { ...filter, type }
}
@ -197,7 +201,8 @@ const registerUsage = async (req, res) => {
callerId,
sessionId,
companyId,
format
format,
usedTo
} = req.body
@ -213,6 +218,7 @@ const registerUsage = async (req, res) => {
const apiPricing = await API_Pricing.findOne({
provider: provider.trim().toLowerCase(),
product: product.trim().toLowerCase(),
format: format?.trim().toLowerCase()
})
if (apiPricing) {
@ -230,7 +236,8 @@ const registerUsage = async (req, res) => {
billingUnit,
companyId,
total_cost: calculateApiUsage(price, billingUnit, usage),
format
format,
usedTo
})
return res.status(StatusCodes.OK).json({ apiUsage })

View File

@ -1,8 +1,9 @@
const mongoose = require('../db/connect')
const mongoose = require("../db/connect");
const { Schema } = mongoose
const { Schema } = mongoose;
const apiUsage = new Schema({
const apiUsage = new Schema(
{
companyId: {
type: String,
required: true,
@ -25,11 +26,11 @@ const apiUsage = new Schema({
},
usage: {
type: String,
required: true
required: true,
},
price: {
type: String,
required: true
required: true,
},
billingBy: {
type: String,
@ -37,15 +38,24 @@ const apiUsage = new Schema({
},
billingUnit: {
type: Number,
required: true
required: true,
},
total_cost: {
type: String,
required: true
}
required: true,
},
format: {
type: String,
enum: ["text", "audio", "image", "video"],
},
usedTo: {
type: String,
enum: ["stt", "llm", "tts"],
},
},
{ timestamps: true }
);
}, { timestamps: true })
const API_Usage = mongoose.model("API_Usage", apiUsage);
const API_Usage = mongoose.model('API_Usage', apiUsage)
module.exports = API_Usage
module.exports = API_Usage;