43dce16fbd
Add APIs for geocoding and reverse-geocoding
2026-04-06 16:59:18 +00:00
2d5dca3fb5
Add proxied autocomplete for Stadia
...
This allows me to make the format consistent and to cache the
intermediate results, which is useful for speed and testing
2026-04-05 21:57:30 +00:00
10e368c403
Get initial nuisance and water resources working
...
This is a straight port of the form-encoded POST submission logic.
It is missing a bunch of data.
2026-04-03 22:04:22 +00:00
bfecae7d61
Add district resource and an API to RMO
...
We're going to need an API for the single-page frontend
2026-04-03 18:17:19 +00:00
4b87c74f41
Make impersonation ending work, fix frontend events
2026-04-02 21:31:31 +00:00
76c395d613
Add display in sidebar for impersonation
2026-04-02 17:39:16 +00:00
f9934095b3
Fix reference to avatar URI
2026-04-02 15:09:59 +00:00
42d111aac9
Add separate session endpoint for additional non-user data
...
This is conceptually much cleaner that encumbering the user object.
2026-04-02 01:07:55 +00:00
00ebc27069
Add reverse parsing of a URI.
...
Yay. I did it. All the work is worth it now.
2026-04-01 22:01:31 +00:00
4145944b1b
Allow arbitrary responses from form-encoded POST
...
Useful for returning full objects
2026-04-01 21:34:17 +00:00
a89a4fbec5
Add avatar resource
2026-04-01 21:23:28 +00:00
0a7a2512d4
Properly set Avatar value to null
2026-04-01 20:35:00 +00:00
6fbde6389d
Start creating user resources without ID.
2026-04-01 20:22:15 +00:00
a656d45a6d
Move QueryParams to resource module
2026-04-01 18:23:43 +00:00
ab519020fc
Swap out the rest of chi
...
We're now chi-free.
Not bug-free.
2026-04-01 16:57:33 +00:00
6c311c76e3
Initial draft of shifting from chi to gorilla/mux
2026-04-01 16:19:11 +00:00
5172400803
Begin switch to gorilla/mux
...
I'm realizing with this code that I'm going to have a problem if I want
to do HATEOAS-style APIs. chi just doesn't do resource-oriented API
design, and I'd have to build a lot of stuff myself.
I'm in the middle of swapping out the UI. Now is the time to make the
switch.
2026-04-01 15:32:27 +00:00
0ecf9c1be1
Populate user selector
2026-03-31 23:34:03 +00:00
21b7b68f50
Get new frontend to type check clean
...
Epic undertaking.
2026-03-31 14:52:53 +00:00
6f9a511874
WIP of user avatar work
...
Switching from laptop
2026-03-29 17:09:01 -07:00
ad90f9c95e
Create API for adding an avatar to a user
2026-03-28 18:55:13 -07:00
e59794f5e0
Query for users to populate the users page
2026-03-28 14:45:49 -07:00
9921618c12
Get to where we can display something on pool review
2026-03-28 09:14:09 -07:00
4bbfbdb9e6
Pretty all the things I missed
...
My laptop didn't have lefthook running. Oops.
2026-03-27 14:06:50 -07:00
f60bde7fd9
Get rows to show on individual upload page.
2026-03-27 14:04:33 -07:00
1ad3c5a5c8
On upload redirect to upload detail page
2026-03-27 11:33:21 -07:00
747544bb58
Get file upload working
...
Even though the UI doesn't do anything with it yet.
2026-03-27 08:39:38 -07:00
d7c07fc65f
Move all POST endpoints to the API
2026-03-27 06:08:55 -07:00
ef412b28ec
Make upload GET an API request
2026-03-25 21:46:23 -07:00
b152cf9c36
Break apart the planning columns
2026-03-22 09:58:25 +00:00
82ecf0f5d1
Add URL for sending message to the list of URLs we give out
2026-03-22 07:06:50 +00:00
821647cef1
Actually fetch communication from the store
2026-03-22 03:03:21 +00:00
46edbbae74
Add Communication API to user URLs
...
We don't want to build URLs anywhere but in the server.
2026-03-22 01:33:14 +00:00
21180816be
Start providing organization info and URLs is user/self
...
The new frontend needs it to do its work.
2026-03-22 01:22:44 +00:00
9b6cacda0e
Make signals include the object they are attached to (pool, report)
...
This means pushing the types into the common types module, which
required a refactor of a bunch of other libraries.
2026-03-21 01:19:36 +00:00
42d9d2372d
Add initial user selector for impersonation page
2026-03-20 05:20:37 +00:00
68e0da1133
Add log message when we can't marshal JSON
...
Been seeing this in prod
2026-03-20 05:01:52 +00:00
87961bac58
Move audio API to its own file
...
More consistent organization
2026-03-19 21:07:00 +00:00
fdab54a775
Fix saving note images and transcoding
2026-03-19 20:49:17 +00:00
2f1b612e9e
Move signal creation inside platform layer
...
This allows us to emit events with it.
2026-03-19 19:00:44 +00:00
908ac4faea
Make signals, not leads, from public reports.
2026-03-19 17:41:56 +00:00
ee61b6d24b
Move review actions into the platform, emit events on change
...
Still not seeing updates in the sidebar, however.
2026-03-19 16:55:49 +00:00
ab5840dd54
Fix references to org ID using platform org
...
I broke these a while ago and didn't realize because the compiler
doesn't catch them.
2026-03-19 03:57:38 +00:00
28714b06b8
Fix tracking report type through the system
2026-03-18 19:25:52 +00:00
685b7456b6
Return logs on comms public reports
...
...and start to display them. A bit.
2026-03-18 18:56:51 +00:00
1e071d5ce5
Overhaul publicreport storage layer, create unified tables
...
This is a huge change. I was getting really sick of the split between
nuisance/water tables when more than half of the data they store is
common. I finally bit off the big work of switching it all.
This creates a single unified table, publicreport.report and copies the
existing report data into it. It also ports existing data from the
original tables into the new table.
Along with all of this I also overhauled the system for handling
asynchronous work to use a LISTEN/NOTIFY connection from the database
and a single cache table to avoid ever losing work.
2026-03-18 15:36:20 +00:00
2538638c9d
Create generic backend process, fix background interdependencies
...
This refactor was born out of the inter-dependency cycles developing
between the "background" module and just about every other module which
was caused by the background module becoming a dependency of every
module that needed to background work and the fact that the background
module was also supposedly responsible for the logic for processing
those tasks.
Instead the "background" module is now very, very shallow and relies
entirely on the Postgres NOTIFY logic for triggering jobs. There's a new
table, `job` which holds just a type and single row ID.
All told, this means that jobs can be added to the queue as part of the
API-level or platform-level transaction, ensuring atomicity, and
processing coordination is handled by the platform module, which can
depend on anything.
2026-03-16 19:52:29 +00:00
cc95c38ab5
Initial creation of endpoint to send messages to public reporters
2026-03-16 00:20:41 +00:00
70d3aef8b3
Re-select selected communication on fetch
...
This makes it so the UI updates with any changes we pull down.
2026-03-14 20:03:46 +00:00
e2af49a323
Make lead creation and invalidation for public reports work
...
The only thing wrong at this point that I can tell is that address
aren't being correctly populated when I reverse geocode.
2026-03-14 01:14:30 +00:00