|
- package controller
-
- import (
- "net/http"
-
- "github.com/QuantumNous/new-api/model"
- "github.com/gin-gonic/gin"
- )
-
- func GetModelChannels(c *gin.Context) {
- modelName := c.Query("model")
- if modelName == "" {
- c.JSON(http.StatusBadRequest, gin.H{
- "success": false,
- "message": "model parameter is required",
- })
- return
- }
-
- userId := c.GetInt("id")
- if userId == 0 {
- c.JSON(http.StatusUnauthorized, gin.H{
- "success": false,
- "message": "unauthorized",
- })
- return
- }
-
- userCache, err := model.GetUserCache(userId)
- if err != nil || userCache == nil {
- c.JSON(http.StatusInternalServerError, gin.H{
- "success": false,
- "message": "failed to get user info",
- })
- return
- }
- userGroup := userCache.Group
- if userGroup == "" {
- c.JSON(http.StatusInternalServerError, gin.H{
- "success": false,
- "message": "failed to get user group",
- })
- return
- }
-
- channels, defaultChannelId, err := model.GetModelChannelsForGroup(modelName, userGroup)
- if err != nil {
- c.JSON(http.StatusInternalServerError, gin.H{
- "success": false,
- "message": "failed to query channels",
- })
- return
- }
-
- c.JSON(http.StatusOK, gin.H{
- "success": true,
- "data": gin.H{
- "channels": channels,
- "default_channel_id": defaultChannelId,
- },
- })
- }
|