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 } let filter = { provider: normalizedProvider, product: normalizedProduct }
if(format){
filter = {...filter, format}
}
if (type) { if (type) {
filter = { ...filter, type } filter = { ...filter, type }
} }
@ -197,7 +201,8 @@ const registerUsage = async (req, res) => {
callerId, callerId,
sessionId, sessionId,
companyId, companyId,
format format,
usedTo
} = req.body } = req.body
@ -213,6 +218,7 @@ const registerUsage = async (req, res) => {
const apiPricing = await API_Pricing.findOne({ const apiPricing = await API_Pricing.findOne({
provider: provider.trim().toLowerCase(), provider: provider.trim().toLowerCase(),
product: product.trim().toLowerCase(), product: product.trim().toLowerCase(),
format: format?.trim().toLowerCase()
}) })
if (apiPricing) { if (apiPricing) {
@ -230,7 +236,8 @@ const registerUsage = async (req, res) => {
billingUnit, billingUnit,
companyId, companyId,
total_cost: calculateApiUsage(price, billingUnit, usage), total_cost: calculateApiUsage(price, billingUnit, usage),
format format,
usedTo
}) })
return res.status(StatusCodes.OK).json({ apiUsage }) 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: { companyId: {
type: String, type: String,
required: true, required: true,
@ -25,11 +26,11 @@ const apiUsage = new Schema({
}, },
usage: { usage: {
type: String, type: String,
required: true required: true,
}, },
price: { price: {
type: String, type: String,
required: true required: true,
}, },
billingBy: { billingBy: {
type: String, type: String,
@ -37,15 +38,24 @@ const apiUsage = new Schema({
}, },
billingUnit: { billingUnit: {
type: Number, type: Number,
required: true required: true,
}, },
total_cost: { total_cost: {
type: String, 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