fix(discourse-connector): handle redirect issue #4780
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
When accessing a Discourse category via
<baseUrl>/c/<categoryId>.json?page={pageNumber}&sys=latest
, Discourse issues a redirect to<baseUrl>/c/<categorySlug>/<categoryId>.json?....
. During this redirect, any numeric occurrence matching thecategoryId
in the query string is also rewritten - including the page parameter - causing incorrect behavior (e.g.,page=5
becomingpage=community/5
).This PR updates the connector logic to use the correct category url to avoid the redirection ensuring that the query parameters remain intact.
How to reproduce?
Try opening this link https://meta.discourse.org/c/10.json?page=10&sys=latest in the browser. It will throw a 400 Bad Request error. When we inspect the url, we will notice the page number has been replaced by the
slug/categoryId
.How Has This Been Tested?
The issue was found when I was trying to sync my own discourse setup. I tested the changes by building the
background
service locally and running the sync.Backporting (check the box to trigger backport action)
Note: You have to check that the action passes, otherwise resolve the conflicts manually and tag the patches.