All checks were successful
Galvanic Corrosion Cross-Compile / build (push) Successful in 57s
The Rewrite™️
- Discord bot removed, will return *eventually*
- Watchdog kills the server with a knife when it does not shut down in (default) 60 seconds
- New event system that works.. better.. and callbacks have types
- Removed a metric ton of circular dependencies that previously would not let the server start up
* This included splitting up some classes
- Other. internal stuff. I forgot.
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
/* 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 express from "express";
|
|
import { AuthType } from "../../data/UserTypes.ts";
|
|
import { StorefrontBalanceType } from "../../data/content/storefronts.ts";
|
|
|
|
export const route = APIUtils.createRouter('/storefronts');
|
|
|
|
interface StorefrontFetchParams {
|
|
id?: string
|
|
}
|
|
route.router.get('/v3/giftdropstore/:id',
|
|
|
|
APIUtils.Authentication,
|
|
APIUtils.AuthenticationType(AuthType.Game),
|
|
|
|
(rq: express.Request<StorefrontFetchParams>, rs: express.Response) => {
|
|
if (!rq.params.id) {
|
|
rs.sendStatus(400);
|
|
return;
|
|
}
|
|
rs.json({
|
|
StorefrontType: parseInt(rq.params.id),
|
|
NextUpdate: new Date(Date.now() + 604_800_000).toISOString(),
|
|
StoreItems: []
|
|
});
|
|
},
|
|
|
|
);
|
|
|
|
interface BalanceParams {
|
|
currencyType?: string
|
|
}
|
|
route.router.get('/v4/balance/:currencyType',
|
|
|
|
APIUtils.Authentication,
|
|
APIUtils.AuthenticationType(AuthType.Game),
|
|
|
|
(rq: express.Request<BalanceParams>, rs: express.Response) => {
|
|
const parsedCurrencyType = parseInt(rq.params.currencyType ? rq.params.currencyType : "2");
|
|
if (isNaN(parsedCurrencyType)) {
|
|
rs.sendStatus(400);
|
|
} else {
|
|
rs.json([{
|
|
Balance: 0,
|
|
BalanceType: StorefrontBalanceType.NonPurchasedNonP2P,
|
|
CurrencyType: parsedCurrencyType
|
|
}]);
|
|
}
|
|
|
|
},
|
|
|
|
); |