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  }