Add API endpoint to fetch original article
This commit is contained in:
		
							parent
							
								
									50c5850f0d
								
							
						
					
					
						commit
						21bbaf2691
					
				
					 2 changed files with 42 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -62,4 +62,5 @@ func Serve(router *mux.Router, store *storage.Storage, pool *worker.Pool) {
 | 
			
		|||
	sr.HandleFunc("/entries", handler.setEntryStatus).Methods(http.MethodPut)
 | 
			
		||||
	sr.HandleFunc("/entries/{entryID}", handler.getEntry).Methods(http.MethodGet)
 | 
			
		||||
	sr.HandleFunc("/entries/{entryID}/bookmark", handler.toggleBookmark).Methods(http.MethodPut)
 | 
			
		||||
	sr.HandleFunc("/entries/{entryID}/fetch-content", handler.fetchContent).Methods(http.MethodGet)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										41
									
								
								api/entry.go
									
										
									
									
									
								
							
							
						
						
									
										41
									
								
								api/entry.go
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -13,6 +13,7 @@ import (
 | 
			
		|||
	"miniflux.app/http/request"
 | 
			
		||||
	"miniflux.app/http/response/json"
 | 
			
		||||
	"miniflux.app/model"
 | 
			
		||||
	"miniflux.app/reader/processor"
 | 
			
		||||
	"miniflux.app/storage"
 | 
			
		||||
	"miniflux.app/validator"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -172,6 +173,46 @@ func (h *handler) toggleBookmark(w http.ResponseWriter, r *http.Request) {
 | 
			
		|||
	json.NoContent(w, r)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (h *handler) fetchContent(w http.ResponseWriter, r *http.Request) {
 | 
			
		||||
	loggedUserID := request.UserID(r)
 | 
			
		||||
	entryID := request.RouteInt64Param(r, "entryID")
 | 
			
		||||
 | 
			
		||||
	entryBuilder := h.store.NewEntryQueryBuilder(loggedUserID)
 | 
			
		||||
	entryBuilder.WithEntryID(entryID)
 | 
			
		||||
	entryBuilder.WithoutStatus(model.EntryStatusRemoved)
 | 
			
		||||
 | 
			
		||||
	entry, err := entryBuilder.GetEntry()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		json.ServerError(w, r, err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if entry == nil {
 | 
			
		||||
		json.NotFound(w, r)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	feedBuilder := storage.NewFeedQueryBuilder(h.store, loggedUserID)
 | 
			
		||||
	feedBuilder.WithFeedID(entry.FeedID)
 | 
			
		||||
	feed, err := feedBuilder.GetFeed()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		json.ServerError(w, r, err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if feed == nil {
 | 
			
		||||
		json.NotFound(w, r)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if err := processor.ProcessEntryWebPage(feed, entry); err != nil {
 | 
			
		||||
		json.ServerError(w, r, err)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	json.OK(w, r, map[string]string{"content": entry.Content})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func configureFilters(builder *storage.EntryQueryBuilder, r *http.Request) {
 | 
			
		||||
	beforeEntryID := request.QueryInt64Param(r, "before_entry_id", 0)
 | 
			
		||||
	if beforeEntryID > 0 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue