Skip to content
This repository has been archived by the owner on Jan 2, 2025. It is now read-only.

Commit

Permalink
Edit PCB Layout in Preview Window (#44)
Browse files Browse the repository at this point in the history
* prepare for pcb dragging, api endpoint setup to submit, dragging
installed

* manual edit reading/editing basic version

* wip

* add pcb_placement derivation and editing

* edit existing placements

* initial implementation working
  • Loading branch information
seveibar authored May 4, 2024
1 parent 9a8a951 commit 0528e23
Show file tree
Hide file tree
Showing 22 changed files with 917 additions and 141 deletions.
Binary file modified bun.lockb
Binary file not shown.
4 changes: 4 additions & 0 deletions dev-server-api/routes/api/dev_package_examples/get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ export default withEdgeSpec({
dev_package_example_id: z.coerce.number(),
file_path: z.string(),
tscircuit_soup: z.any(),
completed_edit_events: z.array(z.any()).nullable().default(null),
is_loading: z.boolean(),
error: z.string().nullable().optional().default(null),
last_updated_at: z.string().datetime(),
Expand All @@ -35,6 +36,9 @@ export default withEdgeSpec({
...r,
is_loading: r.is_loading === 1,
tscircuit_soup: JSON.parse(r.tscircuit_soup),
completed_edit_events: r.completed_edit_events
? JSON.parse(r.completed_edit_events)
: null,
})),
})
})
1 change: 1 addition & 0 deletions dev-server-api/routes/api/dev_package_examples/list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ export default withEdgeSpec({
"file_path",
"export_name",
"last_updated_at",
"soup_last_updated_at",
sql`(is_loading = 1)`.$castTo<boolean>().as("is_loading"),
])
.execute()
Expand Down
18 changes: 16 additions & 2 deletions dev-server-api/routes/api/dev_package_examples/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export default withEdgeSpec({
jsonBody: z.object({
dev_package_example_id: z.coerce.number(),
tscircuit_soup: z.any().optional(),
completed_edit_events: z.array(z.any()).optional(),
error: z.string().nullable().optional().default(null),
}),
jsonResponse: z.object({
Expand All @@ -23,10 +24,23 @@ export default withEdgeSpec({
dev_package_example: await ctx.db
.updateTable("dev_package_example")
.set({
tscircuit_soup: req.jsonBody.tscircuit_soup,
error: req.jsonBody.error,
last_updated_at: new Date().toISOString(),
})
.$if(req.jsonBody.tscircuit_soup !== undefined, (q) =>
q
.set("tscircuit_soup", req.jsonBody.tscircuit_soup)
.set("error", null)
.set("soup_last_updated_at", new Date().toISOString())
)
.$if(req.jsonBody.error !== undefined, (q) =>
q.set("error", req.jsonBody.error)
)
.$if(req.jsonBody.completed_edit_events !== undefined, (q) =>
q.set(
"completed_edit_events",
JSON.stringify(req.jsonBody.completed_edit_events)
)
)
.returningAll()
.where("dev_package_example_id", "=", req.jsonBody.dev_package_example_id)
.executeTakeFirstOrThrow(),
Expand Down
3 changes: 3 additions & 0 deletions dev-server-api/src/db/create-schema.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { DbClient } from "./get-db"

export const createSchema = async (db: DbClient) => {
console.log("Creating schema...")
await db.schema
.createTable("dev_package_example")
.addColumn("dev_package_example_id", "integer", (col) =>
Expand All @@ -9,8 +10,10 @@ export const createSchema = async (db: DbClient) => {
.addColumn("file_path", "text", (col) => col.unique())
.addColumn("export_name", "text")
.addColumn("tscircuit_soup", "json")
.addColumn("completed_edit_events", "json")
.addColumn("error", "text")
.addColumn("is_loading", "boolean", (cb) => cb.defaultTo(0).notNull())
.addColumn("soup_last_updated_at", "text")
.addColumn("last_updated_at", "text")
.execute()

Expand Down
2 changes: 2 additions & 0 deletions dev-server-api/src/db/get-db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ import * as Path from "path"
export interface DevPackageExample {
dev_package_example_id: Generated<number>
tscircuit_soup: any
completed_edit_events: any
file_path: string
export_name: string
error: string | null
is_loading: 1 | 0
last_updated_at: string
soup_last_updated_at: string
}

export interface ExportRequest {
Expand Down
Binary file modified dev-server-frontend/bun.lockb
Binary file not shown.
Loading

0 comments on commit 0528e23

Please sign in to comment.