diff --git a/src/api/global.d.ts b/src/api/global.d.ts
deleted file mode 100644
index 9423b781a..000000000
--- a/src/api/global.d.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
- Copyright (C) 2023 Spacebar and Spacebar Contributors
-
- 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 .
-*/
-
-// declare global {
-// namespace Express {
-// interface Request {
-// user_id: any;
-// token: any;
-// }
-// }
-// }
diff --git a/src/api/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts
index dd2be6d43..7b90f121c 100644
--- a/src/api/routes/users/@me/billing/country-code.ts
+++ b/src/api/routes/users/@me/billing/country-code.ts
@@ -18,12 +18,13 @@
import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
+import { IpDataClient } from "@spacebar/util*";
const router: Router = Router({ mergeParams: true });
-router.get("/", route({}), (req: Request, res: Response) => {
- //TODO
- res.json({ country_code: "US" }).status(200);
+router.get("/", route({}), async (req: Request, res: Response) => {
+ const country_code = (await IpDataClient.getIpInfo(req.ip!))?.country_code;
+ res.json({ country_code: country_code }).status(200);
});
export default router;
diff --git a/src/api/routes/users/@me/billing/location-info.ts b/src/api/routes/users/@me/billing/location-info.ts
index 5a57c0ea6..21dfda972 100644
--- a/src/api/routes/users/@me/billing/location-info.ts
+++ b/src/api/routes/users/@me/billing/location-info.ts
@@ -18,13 +18,14 @@
import { Request, Response, Router } from "express";
import { route } from "@spacebar/api";
+import { IpDataClient } from "@spacebar/util*";
const router: Router = Router({ mergeParams: true });
-router.get("/", route({}), (req: Request, res: Response) => {
- //TODO
+router.get("/", route({}), async (req: Request, res: Response) => {
// TODO: subdivision_code (optional)
- res.json({ country_code: "US" }).status(200);
+ const country_code = (await IpDataClient.getIpInfo(req.ip!))?.country_code;
+ res.json({ country_code: country_code }).status(200);
});
export default router;
diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts
index 7dd21658f..ce0bd8ef0 100644
--- a/src/gateway/opcodes/Identify.ts
+++ b/src/gateway/opcodes/Identify.ts
@@ -651,7 +651,7 @@ export async function onIdentify(this: WebSocket, data: Payload) {
private_channels: channels,
presences: [], // TODO: Send actual data
session_id: this.session_id,
- country_code: user.settings!.locale, // TODO: do ip analysis instead
+ country_code: this.session?.last_seen_location_info?.country_code ?? user.settings!.locale,
users: Array.from(users),
merged_members: merged_members,
sessions: allSessions,
diff --git a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
deleted file mode 100644
index 6f277e31a..000000000
--- a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
- Copyright (C) 2023 Spacebar and Spacebar Contributors
-
- 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 .
-*/
-
-export class ClientReleaseConfiguration {
- useLocalRelease: boolean = true; //TODO
- upstreamVersion: string = "0.0.264";
-}
diff --git a/src/util/config/types/subconfigurations/client/index.ts b/src/util/config/types/subconfigurations/client/index.ts
deleted file mode 100644
index 37231b431..000000000
--- a/src/util/config/types/subconfigurations/client/index.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- Spacebar: A FOSS re-implementation and extension of the Discord.com backend.
- Copyright (C) 2023 Spacebar and Spacebar Contributors
-
- 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 .
-*/
-
-export * from "./ClientReleaseConfiguration";
diff --git a/src/util/config/types/subconfigurations/index.ts b/src/util/config/types/subconfigurations/index.ts
index 2f4eb1ce9..82385df20 100644
--- a/src/util/config/types/subconfigurations/index.ts
+++ b/src/util/config/types/subconfigurations/index.ts
@@ -16,7 +16,6 @@
along with this program. If not, see .
*/
-export * from "./client";
export * from "./defaults";
export * from "./guild";
export * from "./kafka";
diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts
index 23311ce7a..e6ada0d94 100644
--- a/src/util/entities/Session.ts
+++ b/src/util/entities/Session.ts
@@ -59,7 +59,7 @@ export class Session extends BaseClassWithoutId {
client_status: ClientStatus;
@Column({ nullable: false, type: String })
- status: Status; //TODO enum
+ status: Status;
@Column({ default: false })
is_admin_session: boolean;