Skip to content

Commit 6a6a7e6

Browse files
committed
Add name filter
1 parent 9597345 commit 6a6a7e6

File tree

5 files changed

+32
-23
lines changed

5 files changed

+32
-23
lines changed

site/src/api/api.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,10 +118,10 @@ describe("api.ts", () => {
118118
it.each<[TypesGen.WorkspaceFilter | undefined, string]>([
119119
[undefined, "/api/v2/workspaces"],
120120

121-
[{ OrganizationID: "1", Owner: "" }, "/api/v2/workspaces?organization_id=1"],
122-
[{ OrganizationID: "", Owner: "1" }, "/api/v2/workspaces?owner=1"],
121+
[{ organization_id: "1", owner: "" }, "/api/v2/workspaces?organization_id=1"],
122+
[{ organization_id: "", owner: "1" }, "/api/v2/workspaces?owner=1"],
123123

124-
[{ OrganizationID: "1", Owner: "me" }, "/api/v2/workspaces?organization_id=1&owner=me"],
124+
[{ organization_id: "1", owner: "me" }, "/api/v2/workspaces?organization_id=1&owner=me"],
125125
])(`getWorkspacesURL(%p) returns %p`, (filter, expected) => {
126126
expect(getWorkspacesURL(filter)).toBe(expected)
127127
})

site/src/api/api.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,14 @@ export const getWorkspacesURL = (filter?: TypesGen.WorkspaceFilter): string => {
116116
const basePath = "/api/v2/workspaces"
117117
const searchParams = new URLSearchParams()
118118

119-
if (filter?.OrganizationID) {
120-
searchParams.append("organization_id", filter.OrganizationID)
119+
if (filter?.organization_id) {
120+
searchParams.append("organization_id", filter.organization_id)
121121
}
122-
if (filter?.Owner) {
123-
searchParams.append("owner", filter.Owner)
122+
if (filter?.owner) {
123+
searchParams.append("owner", filter.owner)
124+
}
125+
if (filter?.name) {
126+
searchParams.append("name", filter.name)
124127
}
125128

126129
const searchString = searchParams.toString()

site/src/api/typesGenerated.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,10 +445,9 @@ export interface WorkspaceBuildsRequest extends Pagination {
445445

446446
// From codersdk/workspaces.go:201:6
447447
export interface WorkspaceFilter {
448-
readonly OrganizationID: string
449-
readonly Owner: string
450-
readonly Name: string
451-
readonly Deleted: boolean
448+
readonly organization_id?: string
449+
readonly owner?: string
450+
readonly name?: string
452451
}
453452

454453
// From codersdk/workspaceresources.go:21:6

site/src/util/workspace.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ describe("util > workspace", () => {
4242
})
4343
describe("workspaceQueryToFilter", () => {
4444
it.each<[string | undefined, TypesGen.WorkspaceFilter]>([
45-
[undefined, { Owner: "", OrganizationID: "" }],
46-
["", { Owner: "", OrganizationID: "" }],
47-
["asdkfvjn", { Owner: "", OrganizationID: "" }],
48-
["owner:me", { Owner: "me", OrganizationID: "" }],
49-
["owner:me owner:me2", { Owner: "me", OrganizationID: "" }],
45+
[undefined, {}],
46+
["", {}],
47+
["asdkfvjn", { name: "asdkfvjn" }],
48+
["owner:me", { owner: "me" }],
49+
["owner:me owner:me2", { owner: "me" }],
50+
["me/dev", { owner: "me", name: "dev" }],
5051
])(`query=%p, filter=%p`, (query, filter) => {
5152
expect(workspaceQueryToFilter(query)).toEqual(filter)
5253
})

site/src/util/workspace.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,7 @@ export const isWorkspaceOn = (workspace: TypeGen.Workspace): boolean => {
196196
}
197197

198198
export const workspaceQueryToFilter = (query?: string): TypeGen.WorkspaceFilter => {
199-
const defaultFilter: TypeGen.WorkspaceFilter = {
200-
Owner: "",
201-
OrganizationID: "",
202-
}
203-
199+
const defaultFilter: TypeGen.WorkspaceFilter = {}
204200
const preparedQuery = query?.replace(/ +/g, " ")
205201

206202
if (!preparedQuery) {
@@ -212,10 +208,20 @@ export const workspaceQueryToFilter = (query?: string): TypeGen.WorkspaceFilter
212208
const [key, val] = part.split(":")
213209
if (key === "owner") {
214210
return {
215-
Owner: val,
216-
OrganizationID: "",
211+
owner: val,
212+
}
213+
}
214+
215+
const [username, name] = part.split("/")
216+
if (username && name) {
217+
return {
218+
owner: username,
219+
name: name,
217220
}
218221
}
222+
return {
223+
name: part,
224+
}
219225
}
220226

221227
return defaultFilter

0 commit comments

Comments
 (0)