Similarly named parameters causing incorrect endpoint binding
'something/:thing/:thing_other' with the following bindings ['::thing::', '::thing other::'] produces something/::thing::/::thing::_other rather than something/::thing::/::thing other::
This is caused by the str_replace replacing the :thing part of :thing_other as well, few fixes I can think of:
- Requiring params to also have an ending
:, instead of:guild_idit'd be:guild_id:(breaking change for users who specify their own endpoints manually instead of using the constants) - Dont replace
:guild_id, instead replace:guild_id/AND/:guild_idwith the appropriate param, not breaking - Setting a priority to params to replace, in the example provided
:thing_otherwould get higher priority and be replaced first. This would still allow weird replacements when you use$onlyMajorParametersbut it wouldnt cause issues for the rate limiting buckets as it's consistently weird
Currently, there's no endpoints for Discord that would run into this issue. Low priority.
We actually also have to replace the placeholder symbol, i just found a case where we have to deal with reactions endpoints and a custom emoji needs to be in format name:id, the colon in value will break the binding replacement placeholder
Looks like we'll have to go with number 1 then, unless you see another way to solve it.
Any preference for placeholders if we go that route? {guild_id}?