diff --git a/cmd/api/version.go b/cmd/api/version.go index 8c9695d..271ae39 100644 --- a/cmd/api/version.go +++ b/cmd/api/version.go @@ -1,3 +1,3 @@ package main -const version = "0.2.105" +const version = "0.2.2" diff --git a/pkg/api/base.go b/pkg/api/base.go index 2f471e8..687313a 100644 --- a/pkg/api/base.go +++ b/pkg/api/base.go @@ -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), diff --git a/pkg/api/handler/feed.go b/pkg/api/handler/feed.go index 36a7cc9..d4b7471 100644 --- a/pkg/api/handler/feed.go +++ b/pkg/api/handler/feed.go @@ -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) -} diff --git a/pkg/api/handler/generator.go b/pkg/api/handler/generator.go new file mode 100644 index 0000000..283876d --- /dev/null +++ b/pkg/api/handler/generator.go @@ -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) +}