Add 'GeneratorHandler' to api

This commit is contained in:
Aykhan Shahsuvarov 2025-05-28 00:40:06 +04:00
parent 7b89230cae
commit bc29dabd8a
4 changed files with 62 additions and 48 deletions

View File

@ -1,3 +1,3 @@
package main
const version = "0.2.105"
const version = "0.2.2"

View File

@ -23,6 +23,7 @@ func Run(
return err
}
feedHandler := handler.NewFeedHandler(feeds, apiConfig.FeedgenPublisherDID)
generatorHandler := handler.NewGeneratorHandler()
authMiddleware := middleware.NewAuth(apiConfig.ServiceDID)
@ -34,9 +35,9 @@ func Run(
"GET /xrpc/app.bsky.feed.getFeedSkeleton",
authMiddleware.JWTAuthMiddleware(http.HandlerFunc(feedHandler.GetFeedSkeleton)),
)
mux.HandleFunc("GET /{feed}/users", feedHandler.GetAllUsers)
mux.HandleFunc("GET /{feed}/users/valid/", feedHandler.GetValidUsers)
mux.HandleFunc("GET /{feed}/users/invalid/", feedHandler.GetInvalidUsers)
mux.HandleFunc("GET /{feed}/users", generatorHandler.GetAllUsers)
mux.HandleFunc("GET /{feed}/users/valid/", generatorHandler.GetValidUsers)
mux.HandleFunc("GET /{feed}/users/invalid/", generatorHandler.GetInvalidUsers)
httpServer := &http.Server{
Addr: fmt.Sprintf(":%d", apiConfig.APIPort),

View File

@ -10,7 +10,6 @@ import (
"github.com/aykhans/bsky-feedgen/pkg/api/middleware"
"github.com/aykhans/bsky-feedgen/pkg/api/response"
"github.com/aykhans/bsky-feedgen/pkg/feed"
generatorAz "github.com/aykhans/bsky-feedgen/pkg/generator/az"
"github.com/aykhans/bsky-feedgen/pkg/types"
"github.com/aykhans/bsky-feedgen/pkg/utils"
"github.com/bluesky-social/indigo/api/bsky"
@ -100,46 +99,3 @@ func (handler *FeedHandler) GetFeedSkeleton(w http.ResponseWriter, r *http.Reque
Cursor: newCursor,
})
}
func (handler *FeedHandler) GetValidUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
validUsers := make([]string, 0)
switch feed {
case "AzPulse":
validUsers = generatorAz.Users.GetValidUsers()
}
response.JSON(w, 200, response.M{
"feed": feed,
"users": validUsers,
})
}
func (handler *FeedHandler) GetInvalidUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
invalidUsers := make([]string, 0)
switch feed {
case "AzPulse":
invalidUsers = generatorAz.Users.GetInvalidUsers()
}
response.JSON(w, 200, response.M{
"feed": feed,
"users": invalidUsers,
})
}
func (handler *FeedHandler) GetAllUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
responseData := response.M{"feed": feed}
switch feed {
case "AzPulse":
responseData["valid_users"] = generatorAz.Users.GetValidUsers()
responseData["invalid_users"] = generatorAz.Users.GetInvalidUsers()
}
response.JSON(w, 200, responseData)
}

View File

@ -0,0 +1,57 @@
package handler
import (
"net/http"
"github.com/aykhans/bsky-feedgen/pkg/api/response"
generatorAz "github.com/aykhans/bsky-feedgen/pkg/generator/az"
)
type GeneratorHandler struct{}
func NewGeneratorHandler() *GeneratorHandler {
return &GeneratorHandler{}
}
func (handler *GeneratorHandler) GetValidUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
validUsers := make([]string, 0)
switch feed {
case "AzPulse":
validUsers = generatorAz.Users.GetValidUsers()
}
response.JSON(w, 200, response.M{
"feed": feed,
"users": validUsers,
})
}
func (handler *GeneratorHandler) GetInvalidUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
invalidUsers := make([]string, 0)
switch feed {
case "AzPulse":
invalidUsers = generatorAz.Users.GetInvalidUsers()
}
response.JSON(w, 200, response.M{
"feed": feed,
"users": invalidUsers,
})
}
func (handler *GeneratorHandler) GetAllUsers(w http.ResponseWriter, r *http.Request) {
feed := r.PathValue("feed")
responseData := response.M{"feed": feed}
switch feed {
case "AzPulse":
responseData["valid_users"] = generatorAz.Users.GetValidUsers()
responseData["invalid_users"] = generatorAz.Users.GetInvalidUsers()
}
response.JSON(w, 200, responseData)
}