@@ -258,57 +258,38 @@ func newEnabledModelChannel(ch *model.Channel) EnabledModelChannel {
258258 }
259259}
260260
261- // EnabledModelChannels godoc
261+ // EnabledModelSets godoc
262262//
263- // @Summary Get enabled models and channels
264- // @Description Returns a list of enabled models
263+ // @Summary Get enabled models and channels sets
264+ // @Description Returns a list of enabled models and channels sets
265265// @Tags model
266266// @Produce json
267267// @Security ApiKeyAuth
268268// @Success 200 {object} middleware.APIResponse{data=map[string]map[string][]EnabledModelChannel}
269- // @Router /api/models/channel [get]
270- func EnabledModelChannels (c * gin.Context ) {
269+ // @Router /api/models/sets [get]
270+ func EnabledModelSets (c * gin.Context ) {
271271 raw := model .LoadModelCaches ().EnabledModel2ChannelsBySet
272272 result := make (map [string ]map [string ][]EnabledModelChannel )
273273
274+ // First iterate through sets to get all models
275+ for _ , modelChannels := range raw {
276+ for model := range modelChannels {
277+ if _ , exists := result [model ]; ! exists {
278+ result [model ] = make (map [string ][]EnabledModelChannel )
279+ }
280+ }
281+ }
282+
283+ // Then populate the channels for each model and set
274284 for set , modelChannels := range raw {
275- result [set ] = make (map [string ][]EnabledModelChannel )
276285 for model , channels := range modelChannels {
277286 chs := make ([]EnabledModelChannel , len (channels ))
278287 for i , channel := range channels {
279288 chs [i ] = newEnabledModelChannel (channel )
280289 }
281- result [set ][ model ] = chs
290+ result [model ][ set ] = chs
282291 }
283292 }
284293
285294 middleware .SuccessResponse (c , result )
286295}
287-
288- // EnabledModelChannelsSet godoc
289- //
290- // @Summary Get enabled models and channels by set
291- // @Description Returns a list of enabled models and channels by set
292- // @Tags model
293- // @Produce json
294- // @Security ApiKeyAuth
295- // @Param set path string true "Models set"
296- // @Success 200 {object} middleware.APIResponse{data=map[string][]EnabledModelChannel}
297- // @Router /api/models/channel/{set} [get]
298- func EnabledModelChannelsSet (c * gin.Context ) {
299- set := c .Param ("set" )
300- if set == "" {
301- middleware .ErrorResponse (c , http .StatusBadRequest , "set is required" )
302- return
303- }
304- raw := model .LoadModelCaches ().EnabledModel2ChannelsBySet [set ]
305- result := make (map [string ][]EnabledModelChannel , len (raw ))
306- for model , channels := range raw {
307- chs := make ([]EnabledModelChannel , len (channels ))
308- for i , channel := range channels {
309- chs [i ] = newEnabledModelChannel (channel )
310- }
311- result [model ] = chs
312- }
313- middleware .SuccessResponse (c , result )
314- }
0 commit comments