From 0bc128966b4be9b0667cc580ec464b5a023e440a Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Tue, 4 Apr 2023 15:19:46 +0100 Subject: [PATCH 1/3] Redirect legacy endpoints --- src/app-service.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/app-service.ts b/src/app-service.ts index 3f8eb4f..a4024bc 100644 --- a/src/app-service.ts +++ b/src/app-service.ts @@ -86,13 +86,13 @@ export class AppService extends EventEmitter { app.use(bodyParser.json({ limit: this.config.httpMaxSizeBytes || MAX_SIZE_BYTES, })); - + const legacyEndpointHandler = (req, res) => res.status(308).redirect("/_matrix/app/v1" + req.originalUrl).send({ errcode: "M_UNKNOWN", error: "This non-standard endpoint has been removed" }); app.get("/_matrix/app/v1/users/:userId", this.onGetUsers.bind(this)); app.get("/_matrix/app/v1/rooms/:alias", this.onGetRoomAlias.bind(this)); app.put("/_matrix/app/v1/transactions/:txnId", this.onTransaction.bind(this)); - app.get("/users/:userId", this.onGetUsers.bind(this)); - app.get("/rooms/:alias", this.onGetRoomAlias.bind(this)); - app.put("/transactions/:txnId", this.onTransaction.bind(this)); + app.get("/users/:userId", legacyEndpointHandler); + app.get("/rooms/:alias", legacyEndpointHandler); + app.put("/transactions/:txnId", legacyEndpointHandler); app.get("/health", this.onHealthCheck.bind(this)); this.app = app; From fa8cf125766dcb46001d7ba698b3dea1b48537f6 Mon Sep 17 00:00:00 2001 From: Half-Shot Date: Tue, 4 Apr 2023 15:25:45 +0100 Subject: [PATCH 2/3] Fix handler --- src/app-service.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app-service.ts b/src/app-service.ts index a4024bc..3f7b114 100644 --- a/src/app-service.ts +++ b/src/app-service.ts @@ -86,7 +86,8 @@ export class AppService extends EventEmitter { app.use(bodyParser.json({ limit: this.config.httpMaxSizeBytes || MAX_SIZE_BYTES, })); - const legacyEndpointHandler = (req, res) => res.status(308).redirect("/_matrix/app/v1" + req.originalUrl).send({ errcode: "M_UNKNOWN", error: "This non-standard endpoint has been removed" }); + const legacyEndpointHandler = (req: Request, res: Response) => { + res.status(308).location("/_matrix/app/v1" + req.originalUrl).send({ errcode: "M_UNKNOWN", error: "This non-standard endpoint has been removed" }) }; app.get("/_matrix/app/v1/users/:userId", this.onGetUsers.bind(this)); app.get("/_matrix/app/v1/rooms/:alias", this.onGetRoomAlias.bind(this)); app.put("/_matrix/app/v1/transactions/:txnId", this.onTransaction.bind(this)); From cda2c0e21d1507203b5f99c3e53b0ceaeb5c07de Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Tue, 4 Apr 2023 15:33:51 +0100 Subject: [PATCH 3/3] Create 63.removal --- changelog.d/63.removal | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelog.d/63.removal diff --git a/changelog.d/63.removal b/changelog.d/63.removal new file mode 100644 index 0000000..14a59c2 --- /dev/null +++ b/changelog.d/63.removal @@ -0,0 +1,2 @@ +The legacy `/users`, `/rooms`, and `/transactions` endpoints have been removed in this release +and now redirect to the appropriate spec'd path.