Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
b51f562
wip
CommanderStorm Apr 24, 2026
822ce99
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 24, 2026
149aa87
fix(ci): align autofix pnpm setup with webclient CI pattern
CommanderStorm Apr 24, 2026
b558b2e
chore: Update OpenAPI spec and types
autofix-ci[bot] Apr 24, 2026
21e03bc
fix(ci): prevent pnpm from writing self-managed deps into lockfile
CommanderStorm Apr 24, 2026
f9d765a
chore: Update OpenAPI spec and types
autofix-ci[bot] Apr 24, 2026
bc340d8
fix(ci): revert lockfile corruption and stop using run_install in aut…
CommanderStorm Apr 24, 2026
0cad734
wip
CommanderStorm Apr 24, 2026
5ddcb13
fix(ci): use run_install in autofix to ensure correct pnpm binary
CommanderStorm Apr 24, 2026
85fa9c3
chore: Update OpenAPI spec and types
autofix-ci[bot] Apr 24, 2026
f069cbf
fix(ci): restore lockfiles before autofix-ci commits
CommanderStorm Apr 25, 2026
a59f566
fix(ci): pre-build Docker images in update-screenshots job
CommanderStorm Apr 25, 2026
9fc4191
Merge branch 'main' into query-based-search-api
CommanderStorm Apr 25, 2026
ec05edb
fix(server): support repeated query keys for search filters
CommanderStorm Apr 25, 2026
0686c73
fix(server): mark SearchQueryArgs as query params for OpenAPI
CommanderStorm Apr 25, 2026
2be1b70
chore: Update OpenAPI spec and types
autofix-ci[bot] Apr 25, 2026
4056be2
Apply suggestion from @CommanderStorm
CommanderStorm Apr 25, 2026
c11c782
Merge branch 'main' into query-based-search-api
CommanderStorm Apr 25, 2026
0c93809
chore: Update server snapshots
autofix-ci[bot] Apr 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 21 additions & 22 deletions .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,25 +61,27 @@ jobs:
- name: Setup | Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with: {persist-credentials: false}
- name: Setup | Pull Docker images
run: docker compose pull
- name: Setup | Build Docker images
run: docker compose -f compose.local.yml build server

- name: Setup | pnpm
uses: pnpm/action-setup@08c4be7e2e672a47d11bd04269e27e5f3e8529cb # v6.0.0
with:
version: latest

- name: Setup | Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
cache: 'pnpm'
cache-dependency-path: tests/pnpm-lock.yaml

- name: Install | Dependencies
run: pnpm install --frozen-lockfile
working-directory: tests
version: 10.14.0
package_json_file: tests/package.json
run_install: |
- cwd: tests
args: [--frozen-lockfile]

- name: Update | Screenshots
run: pnpm run update-screenshots
working-directory: tests

- name: Restore | Discard lockfile side-effects from pnpm
run: git checkout -- tests/pnpm-lock.yaml

- uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 # v1.3.2
with:
commit-message: "chore: update screenshots"
Expand Down Expand Up @@ -121,17 +123,11 @@ jobs:
- name: Setup | pnpm
uses: pnpm/action-setup@08c4be7e2e672a47d11bd04269e27e5f3e8529cb # v6.0.0
with:
version: latest

- name: Setup | Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
with:
cache: 'pnpm'
cache-dependency-path: webclient/pnpm-lock.yaml

- name: Install | Dependencies
run: pnpm install --frozen-lockfile
working-directory: webclient
version: 10.14.0
package_json_file: webclient/package.json
run_install: |
- cwd: webclient
args: [--frozen-lockfile]

- name: Build | Compile server
working-directory: server
Expand Down Expand Up @@ -183,6 +179,9 @@ jobs:
run: pnpm run type-refresh
working-directory: webclient

- name: Restore | Discard lockfile side-effects from pnpm
run: git checkout -- webclient/pnpm-lock.yaml

- uses: autofix-ci/action@635ffb0c9798bd160680f18fd73371e355b85f27 # v1.3.2
with:
commit-message: "chore: Update OpenAPI spec and types"
Expand Down
36 changes: 25 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ rustls = "0.23.36"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0.149", features = ["raw_value"] }
serde_with = { version = "3.16.1", default-features = false, features = [] }
serde_html_form = "0.4.0"
Comment thread
CommanderStorm marked this conversation as resolved.
Outdated
serde_yaml = "0.9.34"
sqlx = { version = "0.8.6", features = ['chrono', 'json', 'macros', 'migrate', 'postgres', 'runtime-tokio', 'tls-rustls'], default-features = false }
tempfile = "3.25.0"
Expand Down
72 changes: 47 additions & 25 deletions data/output/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -570,16 +570,50 @@ paths:
description: |-
string you want to search for.

The amounts returned can be controlled using the `limit\*` paramerters.

The following query-filters are supported:
- `in:<parent>`/`@<parent>`: Only return rooms in the given parent (e.g. `in:5304` or `in:garching`)
- `usage:<type>`/`nutzung:<usage>`/`=<usage>`: Only return entries of the given usage (e.g. `usage:wc` or `usage:büro`)
- `type:<type>`: Only return entries of the given type (e.g. `type:building` or `type:room`)
- `near:<lat>,<lon>`: prioritise sorting the entries by distance to a coordinate
The amounts returned can be controlled using the `limit_*` parameters.
Use `in`, `usage`, `type`, and `near` query parameters for filtering.
required: true
schema:
type: string
- name: in
in: query
description: |-
Filter by parent (building, campus, etc.).

Can be repeated for multiple values (e.g. `&in=garching&in=5304`).
required: false
schema:
type: array
items:
type: string
- name: usage
in: query
description: |-
Filter by usage type (e.g. `wc`, `büro`).

Can be repeated for multiple values.
required: false
schema:
type: array
items:
type: string
- name: type
in: query
description: |-
Filter by entry type (e.g. `room`, `building`).

Can be repeated for multiple values.
required: false
schema:
type: array
items:
type: string
- name: near
in: query
description: Sort results by distance to a coordinate (`lat,lon`).
required: false
schema:
type: string
- name: search_addresses
in: query
description: |-
Expand All @@ -589,9 +623,7 @@ paths:
Only activate this when you really need it.
required: false
schema:
type:
- boolean
- "null"
type: boolean
- name: limit_buildings
in: query
description: |-
Expand All @@ -601,9 +633,7 @@ paths:
If this is a problem for you, please open an issue.
required: false
schema:
type:
- integer
- "null"
type: integer
minimum: 0
- name: limit_rooms
in: query
Expand All @@ -614,9 +644,7 @@ paths:
If this is an problem for you, please open an issue.
required: false
schema:
type:
- integer
- "null"
type: integer
minimum: 0
- name: limit_all
in: query
Expand All @@ -627,9 +655,7 @@ paths:
If this is an problem for you, please open an issue.
required: false
schema:
type:
- integer
- "null"
type: integer
minimum: 0
- name: pre_highlight
in: query
Expand All @@ -640,9 +666,7 @@ paths:
For background on the default values, please see [Wikipedia](https://en.wikipedia.org/wiki/C0_and_C1_control_codes#Modified_C0_control_code_sets)).
required: false
schema:
type:
- string
- "null"
type: string
- name: post_highlight
in: query
description: |-
Expand All @@ -652,9 +676,7 @@ paths:
For background on the default values, please see [Wikipedia](https://en.wikipedia.org/wiki/C0_and_C1_control_codes#Modified_C0_control_code_sets)).
required: false
schema:
type:
- string
- "null"
type: string
- name: cropping
in: query
description: |-
Expand Down
1 change: 1 addition & 0 deletions server/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ anyhow = { workspace=true, features = ["backtrace"] }
serde = { workspace=true, features = ["derive"] }
serde_with = { workspace=true, default-features = false, features = [] }
serde_json = { workspace=true, features = ["raw_value"] }
serde_html_form.workspace=true
serde_yaml.workspace=true

# runtime + webserver
Expand Down
Loading
Loading