Simplify project route resolving

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
This commit is contained in:
Thomas Scholtes
2023-07-12 15:24:06 +02:00
committed by Rūdolfs Ošiņš
parent 9dd3af0f9f
commit d0a280be02
3 changed files with 10 additions and 26 deletions
+2 -21
View File
@@ -163,30 +163,11 @@ function pathToRoute(url: URL): Route | null {
const baseUrl = extractBaseUrl(hostAndPort);
const id = segments.shift();
if (id) {
// Allows project paths with or without trailing slash
if (
segments.length === 0 ||
(segments.length === 1 && segments[0] === "")
) {
return {
resource: "projects",
params: {
view: { resource: "tree" },
id,
peer: undefined,
baseUrl,
},
};
}
const params = resolveProjectRoute(url, baseUrl, id, segments);
const params = resolveProjectRoute(baseUrl, id, segments, url.search);
if (params) {
return {
resource: "projects",
params: {
...params,
baseUrl,
id,
},
params: params,
};
}
return null;
+5 -5
View File
@@ -464,10 +464,10 @@ function sanitizeQueryString(queryString: string): string {
}
export function resolveProjectRoute(
url: URL,
baseUrl: BaseUrl,
id: string,
segments: string[],
urlSearch: string,
): ProjectsParams | null {
let content = segments.shift();
let peer;
@@ -514,7 +514,7 @@ export function resolveProjectRoute(
resource: "issues",
params: {
view: { resource: "new" },
search: sanitizeQueryString(url.search),
search: sanitizeQueryString(urlSearch),
},
},
baseUrl,
@@ -538,7 +538,7 @@ export function resolveProjectRoute(
resource: "issues",
params: {
view: { resource: "list" },
search: sanitizeQueryString(url.search),
search: sanitizeQueryString(urlSearch),
},
},
baseUrl,
@@ -555,7 +555,7 @@ export function resolveProjectRoute(
return {
view: {
resource: "patch",
params: { patch, revision, search: sanitizeQueryString(url.search) },
params: { patch, revision, search: sanitizeQueryString(urlSearch) },
},
baseUrl,
id,
@@ -569,7 +569,7 @@ export function resolveProjectRoute(
resource: "patches",
params: {
view: { resource: "list" },
search: sanitizeQueryString(url.search),
search: sanitizeQueryString(urlSearch),
},
},
baseUrl,
+3
View File
@@ -33,6 +33,7 @@ describe("route invariant when parsed", () => {
view: { resource: "tree" },
baseUrl,
id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT",
route: "",
},
});
});
@@ -325,6 +326,7 @@ describe("pathToRoute", () => {
},
peer: undefined,
id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT",
route: "",
},
},
description: "Seed Project Route w trailing slash",
@@ -353,6 +355,7 @@ describe("pathToRoute", () => {
},
peer: undefined,
id: "rad:zKtT7DmF9H34KkvcKj9PHW19WzjT",
route: "",
},
},
description: "Seed Project Route w/o trailing slash",