2025-01-25 22:05:38 +08:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
2025-02-15 20:11:59 +08:00
|
|
|
"git.solsynth.dev/hypernet/nexus/pkg/nex/sec"
|
2025-01-26 00:38:28 +08:00
|
|
|
"git.solsynth.dev/hypernet/reader/pkg/internal/models"
|
2025-01-25 22:05:38 +08:00
|
|
|
"git.solsynth.dev/hypernet/reader/pkg/internal/services"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
2025-01-26 00:38:28 +08:00
|
|
|
"github.com/samber/lo"
|
2025-01-25 22:05:38 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func getNewsSources(c *fiber.Ctx) error {
|
2025-02-15 20:11:59 +08:00
|
|
|
isAdvanced := false
|
|
|
|
if err := sec.EnsureGrantedPerm(c, "ListNewsAdvanced", true); err == nil {
|
|
|
|
isAdvanced = true
|
|
|
|
}
|
|
|
|
|
2025-01-26 00:38:28 +08:00
|
|
|
return c.JSON(lo.Filter(services.NewsSources, func(item models.NewsSource, index int) bool {
|
2025-02-15 20:11:59 +08:00
|
|
|
if !isAdvanced && item.Advanced {
|
|
|
|
return false
|
|
|
|
}
|
2025-01-26 00:38:28 +08:00
|
|
|
return item.Enabled
|
|
|
|
}))
|
2025-01-25 22:05:38 +08:00
|
|
|
}
|