aboutsummaryrefslogtreecommitdiff
path: root/internal/api
diff options
context:
space:
mode:
Diffstat (limited to 'internal/api')
-rw-r--r--internal/api/api_integration_test.go48
-rw-r--r--internal/api/entry.go9
2 files changed, 57 insertions, 0 deletions
diff --git a/internal/api/api_integration_test.go b/internal/api/api_integration_test.go
index 9259b590..df8d93a0 100644
--- a/internal/api/api_integration_test.go
+++ b/internal/api/api_integration_test.go
@@ -1986,6 +1986,54 @@ func TestGetAllEntriesEndpointWithFilter(t *testing.T) {
}
}
+func TestGetGlobalEntriesEndpoint(t *testing.T) {
+ testConfig := newIntegrationTestConfig()
+ if !testConfig.isConfigured() {
+ t.Skip(skipIntegrationTestsMessage)
+ }
+
+ adminClient := miniflux.NewClient(testConfig.testBaseURL, testConfig.testAdminUsername, testConfig.testAdminPassword)
+
+ regularTestUser, err := adminClient.CreateUser(testConfig.genRandomUsername(), testConfig.testRegularPassword, false)
+ if err != nil {
+ t.Fatal(err)
+ }
+ defer adminClient.DeleteUser(regularTestUser.ID)
+
+ regularUserClient := miniflux.NewClient(testConfig.testBaseURL, regularTestUser.Username, testConfig.testRegularPassword)
+
+ feedID, err := regularUserClient.CreateFeed(&miniflux.FeedCreationRequest{
+ FeedURL: testConfig.testFeedURL,
+ HideGlobally: true,
+ })
+
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ /* Not filtering on GloballyVisible should return all entries */
+ feedEntries, err := regularUserClient.Entries(&miniflux.Filter{FeedID: feedID})
+
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if len(feedEntries.Entries) == 0 {
+ t.Fatalf(`Expected entries but response contained none.`)
+ }
+
+ /* Feed is hidden globally, so this should be empty */
+ globallyVisibleEntries, err := regularUserClient.Entries(&miniflux.Filter{GloballyVisible: true})
+
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ if len(globallyVisibleEntries.Entries) != 0 {
+ t.Fatalf(`Expected no entries, got %d`, len(globallyVisibleEntries.Entries))
+ }
+}
+
func TestGetEntryEndpoints(t *testing.T) {
testConfig := newIntegrationTestConfig()
if !testConfig.isConfigured() {
diff --git a/internal/api/entry.go b/internal/api/entry.go
index d8fc01f6..121d2701 100644
--- a/internal/api/entry.go
+++ b/internal/api/entry.go
@@ -149,6 +149,15 @@ func (h *handler) findEntries(w http.ResponseWriter, r *http.Request, feedID int
builder.WithLimit(limit)
builder.WithTags(tags)
builder.WithEnclosures()
+
+ if request.HasQueryParam(r, "globally_visible") {
+ globallyVisible := request.QueryBoolParam(r, "globally_visible", true)
+
+ if globallyVisible {
+ builder.WithGloballyVisible()
+ }
+ }
+
configureFilters(builder, r)
entries, err := builder.GetEntries()