Skip to content

Commit 5dbf5b4

Browse files
committed
Add name filter
1 parent 424e933 commit 5dbf5b4

File tree

5 files changed

+34
-24
lines changed

5 files changed

+34
-24
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
@@ -443,10 +443,9 @@ export interface WorkspaceBuildsRequest extends Pagination {
443443

444444
// From codersdk/workspaces.go:201:6
445445
export interface WorkspaceFilter {
446-
readonly OrganizationID: string
447-
readonly Owner: string
448-
readonly Name: string
449-
readonly Deleted: boolean
446+
readonly organization_id?: string
447+
readonly owner?: string
448+
readonly name?: string
450449
}
451450

452451
// 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
@@ -65,11 +65,12 @@ describe("util > workspace", () => {
6565
})
6666
describe("workspaceQueryToFilter", () => {
6767
it.each<[string | undefined, TypesGen.WorkspaceFilter]>([
68-
[undefined, { Owner: "", OrganizationID: "" }],
69-
["", { Owner: "", OrganizationID: "" }],
70-
["asdkfvjn", { Owner: "", OrganizationID: "" }],
71-
["owner:me", { Owner: "me", OrganizationID: "" }],
72-
["owner:me owner:me2", { Owner: "me", OrganizationID: "" }],
68+
[undefined, {}],
69+
["", {}],
70+
["asdkfvjn", { name: "asdkfvjn" }],
71+
["owner:me", { owner: "me" }],
72+
["owner:me owner:me2", { owner: "me" }],
73+
["me/dev", { owner: "me", name: "dev" }],
7374
])(`query=%p, filter=%p`, (query, filter) => {
7475
expect(workspaceQueryToFilter(query)).toEqual(filter)
7576
})

site/src/util/workspace.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ export const isWorkspaceOn = (workspace: TypesGen.Workspace): boolean => {
199199
return transition === "start" && status === "succeeded"
200200
}
201201

202+
<<<<<<< HEAD
202203

203204
export const defaultWorkspaceExtension = (__startDate?: dayjs.Dayjs): TypesGen.PutExtendWorkspaceRequest => {
204205
const now = __startDate ? dayjs(__startDate) : dayjs()
@@ -209,12 +210,8 @@ export const defaultWorkspaceExtension = (__startDate?: dayjs.Dayjs): TypesGen.P
209210
}
210211
}
211212

212-
export const workspaceQueryToFilter = (query?: string): WorkspaceFilter => {
213-
const defaultFilter: WorkspaceFilter = {
214-
Owner: "",
215-
OrganizationID: "",
216-
}
217-
213+
export const workspaceQueryToFilter = (query?: string): TypesGen.WorkspaceFilter => {
214+
const defaultFilter: TypesGen.WorkspaceFilter = {}
218215
const preparedQuery = query?.replace(/ +/g, " ")
219216

220217
if (!preparedQuery) {
@@ -226,10 +223,20 @@ export const workspaceQueryToFilter = (query?: string): WorkspaceFilter => {
226223
const [key, val] = part.split(":")
227224
if (key === "owner") {
228225
return {
229-
Owner: val,
230-
OrganizationID: "",
226+
owner: val,
227+
}
228+
}
229+
230+
const [username, name] = part.split("/")
231+
if (username && name) {
232+
return {
233+
owner: username,
234+
name: name,
231235
}
232236
}
237+
return {
238+
name: part,
239+
}
233240
}
234241

235242
return defaultFilter

0 commit comments

Comments
 (0)