25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

60 satır
2.1 KiB

  1. package controller
  2. import (
  3. "net/http"
  4. "strings"
  5. "github.com/QuantumNous/new-api/common"
  6. "github.com/QuantumNous/new-api/model"
  7. "github.com/QuantumNous/new-api/setting/ratio_setting"
  8. "github.com/QuantumNous/new-api/types"
  9. "github.com/gin-gonic/gin"
  10. )
  11. func GetModelDisplayPricingRules(c *gin.Context) {
  12. common.ApiSuccess(c, ratio_setting.GetModelDisplayPricingCopy())
  13. }
  14. func GetModelDisplayPricingRule(c *gin.Context) {
  15. modelName := strings.TrimPrefix(c.Param("model"), "/")
  16. items := ratio_setting.GetModelDisplayPricing(modelName)
  17. if len(items) == 0 {
  18. c.JSON(http.StatusNotFound, gin.H{"success": false, "message": "model display pricing not found"})
  19. return
  20. }
  21. common.ApiSuccess(c, items)
  22. }
  23. func UpdateModelDisplayPricingRule(c *gin.Context) {
  24. modelName := strings.TrimPrefix(c.Param("model"), "/")
  25. var items []types.ModelDisplayPricingItem
  26. if err := common.DecodeJson(c.Request.Body, &items); err != nil {
  27. c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
  28. return
  29. }
  30. if err := ratio_setting.SetModelDisplayPricing(modelName, items); err != nil {
  31. c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
  32. return
  33. }
  34. if err := model.UpdateOption(ratio_setting.ModelDisplayPricingOptionKey, ratio_setting.ModelDisplayPricing2JSONString()); err != nil {
  35. c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": err.Error()})
  36. return
  37. }
  38. model.RefreshPricing()
  39. common.ApiSuccess(c, ratio_setting.GetModelDisplayPricing(modelName))
  40. }
  41. func DeleteModelDisplayPricingRule(c *gin.Context) {
  42. modelName := strings.TrimPrefix(c.Param("model"), "/")
  43. if err := ratio_setting.DeleteModelDisplayPricing(modelName); err != nil {
  44. c.JSON(http.StatusBadRequest, gin.H{"success": false, "message": err.Error()})
  45. return
  46. }
  47. if err := model.UpdateOption(ratio_setting.ModelDisplayPricingOptionKey, ratio_setting.ModelDisplayPricing2JSONString()); err != nil {
  48. c.JSON(http.StatusInternalServerError, gin.H{"success": false, "message": err.Error()})
  49. return
  50. }
  51. model.RefreshPricing()
  52. common.ApiSuccess(c, nil)
  53. }