Rooms and matchmaking
* Added missing config (route) data * Fetch room class, database hash * Basic room querying * Built-in room generation during first runtime * Matchmaking response base and notes for myself, later today * Instance fixes * Challenge and quick play routes (unused for now) * Rooms route (untested) * Matchmaking goto route * Avatar route addition * Settings/set route
This commit is contained in:
49
src/routes/api/rooms.ts
Normal file
49
src/routes/api/rooms.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
/* Galvanic Corrosion - Rec Room custom server for communities.
|
||||
<https://gitea.proxnet.dev/zombieb-galvanic-corrosion>
|
||||
Copyright (C) 2025 @zombieb (Discord / proxnet Gitea)
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
import { APIUtils } from "../../apiutils.ts";
|
||||
import Rooms from "../../data/content/rooms.ts";
|
||||
import { AuthType } from "../../data/users.ts";
|
||||
import express from "express";
|
||||
|
||||
export const route = APIUtils.createRouter("/rooms");
|
||||
|
||||
interface Params {
|
||||
roomId?: string
|
||||
}
|
||||
|
||||
route.router.get('/v4/details/:roomId',
|
||||
|
||||
APIUtils.Authentication,
|
||||
APIUtils.AuthenticationType(AuthType.Game),
|
||||
|
||||
async (rq: express.Request<Params>, rs: express.Response) => {
|
||||
if (!rq.params.roomId) {
|
||||
rs.sendStatus(400);
|
||||
return;
|
||||
}
|
||||
const parsedId = parseInt(rq.params.roomId);
|
||||
if (isNaN(parsedId)) {
|
||||
rs.sendStatus(400);
|
||||
return;
|
||||
}
|
||||
const room = await Rooms.get(parsedId);
|
||||
if (room == null) rs.sendStatus(404);
|
||||
else rs.json(room);
|
||||
},
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user