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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy