|
- package controller
-
- import (
- "net/http"
- "strings"
-
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/model"
- "github.com/QuantumNous/new-api/setting/ratio_setting"
- "github.com/QuantumNous/new-api/types"
- "github.com/gin-gonic/gin"
- )
-
- func GetModelDisplayPricingRules(c *gin.Context) {
- common.ApiSuccess(c, ratio_setting.GetModelDisplayPricingCopy())
- }
-
- func GetModelDisplayPricingRule(c *gin.Context) {
- modelName := strings.TrimPrefix(c.Param("model"), "/")
- items := ratio_setting.GetModelDisplayPricing(modelName)
- if len(items) == 0 {
- c.JSON(http.StatusNotFound, gin.H{"success": false, "message": "model display pricing not found"})
- return
- }
- common.ApiSuccess(c, items)
- }
-
- func UpdateModelDisplayPricingRule(c *gin.Context) {
- modelName := strings.TrimPrefix(c.Param("model"), "/")
- var items []types.ModelDisplayPricingItem
- if err := common.DecodeJson(c.Request.Body, &items); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
- return
- }
- if err := ratio_setting.SetModelDisplayPricing(modelName, items); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
- return
- }
- if err := model.UpdateOption(ratio_setting.ModelDisplayPricingOptionKey, ratio_setting.ModelDisplayPricing2JSONString()); err != nil {
- c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": err.Error()})
- return
- }
- model.RefreshPricing()
- common.ApiSuccess(c, ratio_setting.GetModelDisplayPricing(modelName))
- }
-
- func DeleteModelDisplayPricingRule(c *gin.Context) {
- modelName := strings.TrimPrefix(c.Param("model"), "/")
- if err := ratio_setting.DeleteModelDisplayPricing(modelName); err != nil {
- c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
- return
- }
- if err := model.UpdateOption(ratio_setting.ModelDisplayPricingOptionKey, ratio_setting.ModelDisplayPricing2JSONString()); err != nil {
- c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": err.Error()})
- return
- }
- model.RefreshPricing()
- common.ApiSuccess(c, nil)
- }
|