added cargo files
This commit is contained in:
95
PinePods-0.8.2/gpodder-api/internal/api/routes.go
Normal file
95
PinePods-0.8.2/gpodder-api/internal/api/routes.go
Normal file
@@ -0,0 +1,95 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"log"
|
||||
"pinepods/gpodder-api/internal/db"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// Add or update in routes.go to ensure the Episode API routes are registered:
|
||||
|
||||
// RegisterRoutes registers all API routes
|
||||
func RegisterRoutes(router *gin.RouterGroup, database *db.Database) {
|
||||
// Authentication endpoints
|
||||
log.Println("[INFO] Registering API routes...")
|
||||
authGroup := router.Group("/auth/:username")
|
||||
{
|
||||
authGroup.POST("/login.json", handleLogin(database))
|
||||
authGroup.POST("/logout.json", handleLogout(database))
|
||||
}
|
||||
// Device API
|
||||
log.Println("[INFO] Registering device routes")
|
||||
router.GET("/devices/:username.json", AuthenticationMiddleware(database), listDevices(database))
|
||||
router.POST("/devices/:username/:deviceid", AuthenticationMiddleware(database), updateDeviceData(database))
|
||||
router.GET("/updates/:username/:deviceid", AuthenticationMiddleware(database), getDeviceUpdates(database))
|
||||
|
||||
// Subscriptions API
|
||||
subscriptionsGroup := router.Group("/subscriptions/:username")
|
||||
subscriptionsGroup.Use(AuthenticationMiddleware(database))
|
||||
{
|
||||
subscriptionsGroup.GET("/:deviceid", getSubscriptions(database))
|
||||
subscriptionsGroup.PUT("/:deviceid", updateSubscriptions(database))
|
||||
subscriptionsGroup.POST("/:deviceid", uploadSubscriptionChanges(database))
|
||||
// All subscriptions endpoint (since 2.11)
|
||||
subscriptionsGroup.GET(".json", getAllSubscriptions(database))
|
||||
}
|
||||
|
||||
// Episode Actions API - FIXED ROUTE PATTERN
|
||||
log.Println("[INFO] Registering episode actions routes")
|
||||
// Register directly on the router without a group
|
||||
router.GET("/episodes/:username.json", AuthenticationMiddleware(database), getEpisodeActions(database))
|
||||
router.POST("/episodes/:username.json", AuthenticationMiddleware(database), uploadEpisodeActions(database))
|
||||
|
||||
// Settings API
|
||||
settingsGroup := router.Group("/settings/:username")
|
||||
settingsGroup.Use(AuthenticationMiddleware(database))
|
||||
{
|
||||
settingsGroup.GET("/:scope.json", getSettings(database))
|
||||
settingsGroup.POST("/:scope.json", saveSettings(database))
|
||||
}
|
||||
|
||||
// Podcast Lists API
|
||||
listsGroup := router.Group("/lists/:username")
|
||||
{
|
||||
listsGroup.GET(".json", getUserLists(database))
|
||||
listsGroup.POST("/create", AuthenticationMiddleware(database), createPodcastList(database))
|
||||
listGroup := listsGroup.Group("/list/:listname")
|
||||
{
|
||||
listGroup.GET("", getPodcastList(database))
|
||||
listGroup.PUT("", AuthenticationMiddleware(database), updatePodcastList(database))
|
||||
listGroup.DELETE("", AuthenticationMiddleware(database), deletePodcastList(database))
|
||||
}
|
||||
}
|
||||
|
||||
// Favorite Episodes API
|
||||
router.GET("/favorites/:username.json", AuthenticationMiddleware(database), getFavoriteEpisodes(database))
|
||||
|
||||
// Device Synchronization API
|
||||
syncGroup := router.Group("/sync-devices/:username")
|
||||
syncGroup.Use(AuthenticationMiddleware(database))
|
||||
{
|
||||
syncGroup.GET(".json", getSyncStatus(database))
|
||||
syncGroup.POST(".json", updateSyncStatus(database))
|
||||
}
|
||||
|
||||
// Directory API (no auth required)
|
||||
router.GET("/tags/:count.json", getTopTags(database))
|
||||
router.GET("/tag/:tag/:count.json", getPodcastsForTag(database))
|
||||
router.GET("/data/podcast.json", getPodcastData(database))
|
||||
router.GET("/data/episode.json", getEpisodeData(database))
|
||||
|
||||
// Suggestions API (auth required)
|
||||
router.GET("/suggestions/:count", AuthenticationMiddleware(database), getSuggestions(database))
|
||||
}
|
||||
|
||||
// RegisterSimpleRoutes registers routes for the Simple API (v1)
|
||||
func RegisterSimpleRoutes(router *gin.RouterGroup, database *db.Database) {
|
||||
// Toplist
|
||||
router.GET("/toplist/:number", getToplist(database))
|
||||
// Search
|
||||
router.GET("/search", podcastSearch(database))
|
||||
// Subscriptions (Simple API)
|
||||
router.GET("/subscriptions/:username/:deviceid", AuthenticationMiddleware(database), getSubscriptionsSimple(database))
|
||||
router.PUT("/subscriptions/:username/:deviceid", AuthenticationMiddleware(database), updateSubscriptionsSimple(database))
|
||||
}
|
||||
Reference in New Issue
Block a user