Commit graph

127 commits

Author SHA1 Message Date
c41154a200
Actually serialize errors on bad JSON POST response 2026-04-08 17:27:51 +00:00
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