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,51 +1,61 @@
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,
}, },
callerId: { callerId: {
type: String, type: String,
required: true, required: true,
}, },
sessionId: { sessionId: {
type: String, type: String,
required: true, required: true,
}, },
provider: { provider: {
type: String, type: String,
required: true, required: true,
}, },
product: { product: {
type: String, type: String,
required: true, required: true,
}, },
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,
required: true, required: true,
}, },
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;