dendrite/clientapi
Till 79072c3dcd
Add /_synapse/admin/v1/event_reports endpoint (#3342)
Based on #3340 

This adds a `/_synapse/admin/v1/event_reports` endpoint, the same
Synapse has. This way existing tools also work with Dendrite.
Given this is already getting huge (even though many test lines),
splitting this into two PRs. (The next adds "getting one report" and
"deleting reports")

[skip ci]
2024-03-22 22:32:30 +01:00
..
api feat: admin APIs for token authenticated registration (#3101) 2023-06-22 16:37:21 +00:00
auth Appservice Login (2nd attempt) (#3078) 2023-11-24 22:34:13 +01:00
httputil Move MakeJoin logic to GMSL (#3081) 2023-05-17 00:33:27 +00:00
producers refactor: update GMSL (#3058) 2023-04-19 15:50:33 +01:00
routing Add /_synapse/admin/v1/event_reports endpoint (#3342) 2024-03-22 22:32:30 +01:00
threepid Use *spec.SenderID for QuerySenderIDForUser (#3164) 2023-08-02 11:12:14 +01:00
userutil refactor: update GMSL (#3058) 2023-04-19 15:50:33 +01:00
admin_test.go Add /_synapse/admin/v1/event_reports endpoint (#3342) 2024-03-22 22:32:30 +01:00
clientapi_test.go Add event reporting (#3340) 2024-03-21 19:27:34 +01:00
clientapi.go Move fedclient interface over to gmsl (#3061) 2023-04-24 16:23:25 +00:00
README.md use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00

This component roughly corresponds to "Client Room Send" and "Client Sync" on the WIRING diagram. This component produces multiple binaries.

Internals

  • HTTP routing is done using gorilla/mux and the routing paths are in the routing package.

Writers

  • Each HTTP "write operation" (/createRoom, /rooms/$room_id/send/$type, etc) is contained entirely to a single file in the writers package.
  • This file contains the request and response struct definitions, as well as a Validate() bool function to validate incoming requests.
  • The entry point for each write operation is a stand-alone function as this makes testing easier. All dependencies should be injected into this function, including server keys/name, etc.