Fix path() doing nothing without a mxid
This commit is contained in:
parent
b9ec28a5ad
commit
57d5cfb480
2 changed files with 9 additions and 3 deletions
|
@ -19,15 +19,17 @@ const makeTxnId = sync.require("./txnid")
|
|||
* @returns {string} the new endpoint
|
||||
*/
|
||||
function path(p, mxid, otherParams = {}) {
|
||||
if (!mxid) return p
|
||||
const u = new URL(p, "http://localhost")
|
||||
u.searchParams.set("user_id", mxid)
|
||||
if (mxid) u.searchParams.set("user_id", mxid)
|
||||
for (const entry of Object.entries(otherParams)) {
|
||||
if (entry[1] != undefined) {
|
||||
u.searchParams.set(entry[0], entry[1])
|
||||
}
|
||||
}
|
||||
return u.pathname + "?" + u.searchParams.toString()
|
||||
let result = u.pathname
|
||||
const str = u.searchParams.toString()
|
||||
if (str) result += "?" + str
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -20,3 +20,7 @@ test("api path: existing query parameters with mxid", t => {
|
|||
test("api path: real world mxid", t => {
|
||||
t.equal(path("/hello/world", "@cookie_monster:cadence.moe"), "/hello/world?user_id=%40cookie_monster%3Acadence.moe")
|
||||
})
|
||||
|
||||
test("api path: extras number works", t => {
|
||||
t.equal(path(`/client/v3/rooms/!example/timestamp_to_event`, null, {ts: 1687324651120}), "/client/v3/rooms/!example/timestamp_to_event?ts=1687324651120")
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue