github.com/k0marov/go-socnet@v0.0.0-20220715154813-90d07867c782/features/feed/delivery/http/handlers/handlers.go (about) 1 package handlers 2 3 import ( 4 "github.com/k0marov/go-socnet/core/helpers/http_helpers" 5 "github.com/k0marov/go-socnet/features/feed/delivery/http/responses" 6 "github.com/k0marov/go-socnet/features/feed/domain/service" 7 "net/http" 8 ) 9 10 func NewFeedHandler(getFeed service.FeedGetter) http.HandlerFunc { 11 return func(w http.ResponseWriter, r *http.Request) { 12 caller, ok := http_helpers.GetUserOrAddUnauthorized(w, r) 13 if !ok { 14 return 15 } 16 count := r.URL.Query().Get("count") 17 posts, err := getFeed(count, caller.Id) 18 if err != nil { 19 http_helpers.HandleServiceError(w, err) 20 return 21 } 22 http_helpers.WriteJson(w, responses.FeedResponse{Posts: posts}) 23 } 24 }