From 0db471d5f3b799ea052b685bc5136be06b53cb75 Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Thu, 10 Nov 2022 00:36:39 +0000 Subject: [PATCH] refactor: rename PublicUserDocument to UserDocument --- bot/src/server/server.ts | 4 +-- bot/src/utils/apiRequests.ts | 4 +-- bot/src/utils/argParsers.ts | 4 +-- bot/src/utils/embeds.ts | 8 +++--- bot/src/utils/misc.ts | 6 ++-- bot/src/utils/returnTypes.ts | 4 +-- client/src/app/pages/LoginPage.tsx | 4 +-- client/src/app/pages/RegisterPage.tsx | 4 +-- .../src/app/pages/dashboard/DashboardPage.tsx | 10 +++---- .../games/_game/_playtype/GPTChartPage.tsx | 12 ++++---- .../games/_game/_playtype/GPTMainPage.tsx | 10 +++---- .../app/pages/dashboard/import/ImportPage.tsx | 4 +-- .../dashboard/users/ARCIntegrationPage.tsx | 4 +-- .../users/FervidexIntegrationPage.tsx | 6 ++-- .../users/KsHookSV6CIntegrationPage.tsx | 6 ++-- .../dashboard/users/NotificationsPage.tsx | 6 ++-- .../pages/dashboard/users/UserGamesPage.tsx | 6 ++-- .../pages/dashboard/users/UserImportsPage.tsx | 8 +++--- .../dashboard/users/UserIntegrationsPage.tsx | 10 +++---- .../pages/dashboard/users/UserInvitesPage.tsx | 8 +++--- .../app/pages/dashboard/users/UserPage.tsx | 4 +-- .../dashboard/users/UserSettingsPage.tsx | 16 +++++------ .../_game/_playtype/LeaderboardsPage.tsx | 8 +++--- .../games/_game/_playtype/OverviewPage.tsx | 12 ++++---- .../games/_game/_playtype/ScoresPage.tsx | 18 ++++++------ .../games/_game/_playtype/SessionsPage.tsx | 6 ++-- .../_game/_playtype/SpecificSessionPage.tsx | 4 +-- .../_game/_playtype/UGPTSettingsPage.tsx | 6 ++-- .../_playtype/folders/FolderComparePage.tsx | 12 ++++---- .../_playtype/folders/FolderSelectPage.tsx | 4 +-- .../_playtype/folders/FolderTablePage.tsx | 4 +-- .../_playtype/folders/FoldersMainPage.tsx | 4 +-- .../_playtype/folders/RecentFoldersPage.tsx | 4 +-- .../_playtype/folders/SpecificFolderPage.tsx | 8 +++--- .../_game/_playtype/rivals/RivalsMainPage.tsx | 4 +-- .../_playtype/rivals/RivalsManagePage.tsx | 14 +++++----- .../_game/_playtype/targets/TargetsPage.tsx | 4 +-- client/src/app/routes/UserRoutes.tsx | 10 +++---- .../game/folder/FolderInfoHeader.tsx | 4 +-- .../components/game/folder/FolderMinimap.tsx | 4 +-- client/src/components/imports/ImportInfo.tsx | 4 +-- .../components/layout/header/SearchBar.tsx | 6 ++-- .../layout/header/UserNotificationButton.tsx | 4 +-- .../layout/header/UserProfileDropdown.tsx | 4 +-- .../layout/screens/LoadingScreen.tsx | 4 +-- .../src/components/tables/cells/UserCell.tsx | 4 +-- .../tables/dropdowns/ScoreDropdown.tsx | 4 +-- .../components/tables/goals/GoalSubTable.tsx | 4 +-- .../tables/sessions/GenericSessionTable.tsx | 6 ++-- client/src/components/user/ProfilePicture.tsx | 4 +-- client/src/components/user/UGPTHeader.tsx | 4 +-- .../src/components/user/UGPTStatContainer.tsx | 4 +-- .../src/components/user/UGPTStatCreator.tsx | 4 +-- .../src/components/user/UGPTStatShowcase.tsx | 6 ++-- client/src/components/user/UserHeader.tsx | 10 +++---- client/src/components/util/OAuthMoreInfo.tsx | 4 +-- client/src/components/util/ReferToUser.tsx | 4 +-- client/src/components/util/UserIcon.tsx | 4 +-- .../components/util/modal/UserSelectModal.tsx | 8 +++--- .../components/util/query/fetchUGPTData.ts | 6 ++-- client/src/components/util/useUGPTBase.tsx | 4 +-- client/src/context/UserContext.tsx | 8 +++--- client/src/types/api-returns.ts | 28 +++++++++---------- client/src/types/tables.ts | 18 ++++++------ client/src/util/data.ts | 6 ++-- common/src/types.ts | 2 +- server/src/external/mongo/db.ts | 4 +-- server/src/lib/invites/invites.ts | 4 +-- .../notifications/notification-wrappers.ts | 4 +-- .../framework/common/import-logger.ts | 4 +-- .../score-importing/score-import-main.ts | 4 +-- .../framework/sessions/sessions.test.ts | 4 +-- server/src/lib/search/search.ts | 4 +-- server/src/server/router/api/v1/auth/auth.ts | 8 +++--- .../_playtype/charts/_chartID/router.test.ts | 4 +-- .../v1/games/_game/_playtype/router.test.ts | 4 +-- .../src/server/router/api/v1/search/router.ts | 6 ++-- .../users/_userID/api-tokens/router.test.ts | 4 +-- .../_game/_playtype/rivals/router.test.ts | 6 ++-- .../_game/_playtype/showcase/router.test.ts | 4 +-- .../_playtype/targets/quests/router.test.ts | 6 ++-- .../integrations/fervidex/router.test.ts | 4 +-- .../integrations/kshook-sv6c/router.test.ts | 4 +-- .../v1/users/_userID/invites/router.test.ts | 4 +-- .../v1/users/_userID/settings/router.test.ts | 4 +-- .../server/router/api/v1/users/router.test.ts | 8 +++--- .../beatoraja/charts/_chartSHA256/router.ts | 4 +-- .../server/router/ir/beatoraja/router.test.ts | 4 +-- .../router/ir/usc/_playtype/router.test.ts | 8 +++--- .../router/ir/usc/_playtype/usc.test.ts | 4 +-- server/src/test-utils/misc.ts | 4 +-- server/src/test-utils/test-data.ts | 4 +-- .../src/utils/calculations/recalc-scores.ts | 4 +-- server/src/utils/types.ts | 6 ++-- server/src/utils/user.test.ts | 4 +-- server/src/utils/user.ts | 10 +++---- 96 files changed, 294 insertions(+), 294 deletions(-) diff --git a/bot/src/server/server.ts b/bot/src/server/server.ts index b5a790df1..64ff17cf2 100644 --- a/bot/src/server/server.ts +++ b/bot/src/server/server.ts @@ -10,7 +10,7 @@ import { HandleGoalAchievedV1 } from "../webhookHandlers/goalAchieved"; import express from "express"; import path from "path"; import type { Express } from "express"; -import type { APITokenDocument, PublicUserDocument, WebhookEvents } from "tachi-common"; +import type { APITokenDocument, UserDocument, WebhookEvents } from "tachi-common"; export const app: Express = express(); @@ -85,7 +85,7 @@ app.get("/oauth/callback", async (req, res) => { const discordID = req.query.context; const apiToken = tokenRes.body.token!; - const whoamiRes = await TachiServerV1Get("/users/me", apiToken); + const whoamiRes = await TachiServerV1Get("/users/me", apiToken); if (!whoamiRes.success) { logger.severe("Failed to request user with token we just got?", { discordID }); diff --git a/bot/src/utils/apiRequests.ts b/bot/src/utils/apiRequests.ts index 019d8b772..2eb9f9c91 100644 --- a/bot/src/utils/apiRequests.ts +++ b/bot/src/utils/apiRequests.ts @@ -14,7 +14,7 @@ import type { integer, PBScoreDocument, Playtype, - PublicUserDocument, + UserDocument, SessionDocument, SongDocument, } from "tachi-common"; @@ -22,7 +22,7 @@ import type { const logger = CreateLayeredLogger(LoggerLayers.apiRequests); export async function GetUserInfo(userID: integer | string) { - const res = await TachiServerV1Get(`/users/${userID}`, null); + const res = await TachiServerV1Get(`/users/${userID}`, null); if (!res.success) { throw new Error(`Failed to fetch user with userID ${userID}.`); diff --git a/bot/src/utils/argParsers.ts b/bot/src/utils/argParsers.ts index 2ca53b62c..3cea0a142 100644 --- a/bot/src/utils/argParsers.ts +++ b/bot/src/utils/argParsers.ts @@ -4,7 +4,7 @@ import { GetGamePTConfig } from "tachi-common"; import type { DiscordUserMapDocument } from "../database/documents"; import type { Emittable } from "../slashCommands/types"; import type { CommandInteraction } from "discord.js"; -import type { Difficulties, Game, IDStrings, Playtype, PublicUserDocument } from "tachi-common"; +import type { Difficulties, Game, IDStrings, Playtype, UserDocument } from "tachi-common"; /** * Utility parser for getting the game, playtype and requesting user, since this is @@ -15,7 +15,7 @@ export async function GetGPTAndUser( requestingUser: DiscordUserMapDocument ): Promise< | { error: Emittable } - | { error: null; content: { userDoc: PublicUserDocument; game: Game; playtype: Playtype } } + | { error: null; content: { userDoc: UserDocument; game: Game; playtype: Playtype } } > { const userID = interaction.options.getString("other_user") ?? requestingUser.userID.toString(); diff --git a/bot/src/utils/embeds.ts b/bot/src/utils/embeds.ts index 9a466378d..c10567fa5 100644 --- a/bot/src/utils/embeds.ts +++ b/bot/src/utils/embeds.ts @@ -32,7 +32,7 @@ import type { integer, PBScoreDocument, Playtype, - PublicUserDocument, + UserDocument, ScoreDocument, SessionDocument, SongDocument, @@ -60,7 +60,7 @@ export function CreateImportEmbed(importDoc: ImportDocument) { ); } -export function CreateUserEmbed(userDoc: PublicUserDocument) { +export function CreateUserEmbed(userDoc: UserDocument) { return CreateEmbed() .setTitle(`${userDoc.username} (ID: ${userDoc.id})`) .setThumbnail(PrependTachiUrl(`/users/${userDoc.id}/pfp`)) @@ -69,7 +69,7 @@ export function CreateUserEmbed(userDoc: PublicUserDocument) { .setURL(`${BotConfig.TACHI_SERVER_LOCATION}/dashboard/users/${userDoc.username}`); } -export function CreateGameProfileEmbed(userDoc: PublicUserDocument, ugptStats: UGPTStats) { +export function CreateGameProfileEmbed(userDoc: UserDocument, ugptStats: UGPTStats) { const { game, playtype } = ugptStats.gameStats; const gptConfig = GetGamePTConfig(game, playtype); @@ -126,7 +126,7 @@ export function CreateGameProfileEmbed(userDoc: PublicUserDocument, ugptStats: U } export async function CreateChartScoresEmbed( - userDoc: PublicUserDocument, + userDoc: UserDocument, game: Game, playtype: Playtype, chartID: string, diff --git a/bot/src/utils/misc.ts b/bot/src/utils/misc.ts index 58de2e4d3..57aa29732 100644 --- a/bot/src/utils/misc.ts +++ b/bot/src/utils/misc.ts @@ -14,7 +14,7 @@ import type { PBScoreDocument, Playtype, Playtypes, - PublicUserDocument, + UserDocument, ScoreCalculatedDataLookup, ScoreDocument, SongDocument, @@ -366,8 +366,8 @@ export function CreateSongMap(songs: Array) { - const userMap = new Map(); +export function CreateUserMap(users: Array) { + const userMap = new Map(); for (const user of users) { userMap.set(user.id, user); diff --git a/bot/src/utils/returnTypes.ts b/bot/src/utils/returnTypes.ts index 7725b656a..e830d29b3 100644 --- a/bot/src/utils/returnTypes.ts +++ b/bot/src/utils/returnTypes.ts @@ -10,7 +10,7 @@ import type { ImportTypes, integer, Lamps, - PublicUserDocument, + UserDocument, ScoreDocument, SessionDocument, SongDocument, @@ -83,5 +83,5 @@ export interface SessionInfo { songs: Array; charts: Array; scores: Array; - user: PublicUserDocument; + user: UserDocument; } diff --git a/client/src/app/pages/LoginPage.tsx b/client/src/app/pages/LoginPage.tsx index 132185daf..94b6f0db2 100644 --- a/client/src/app/pages/LoginPage.tsx +++ b/client/src/app/pages/LoginPage.tsx @@ -11,7 +11,7 @@ import { Button, Col, Form } from "react-bootstrap"; import ReCAPTCHA from "react-google-recaptcha"; import toast from "react-hot-toast"; import { Link, useHistory } from "react-router-dom"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; export default function LoginPage() { useSetSubheader("Login"); @@ -51,7 +51,7 @@ export default function LoginPage() { return; } - const userRJ = await APIFetchV1("/users/me"); + const userRJ = await APIFetchV1("/users/me"); if (userRJ.statusCode === 403) { setErr("You are banned."); diff --git a/client/src/app/pages/RegisterPage.tsx b/client/src/app/pages/RegisterPage.tsx index f4f9e4756..db725537c 100644 --- a/client/src/app/pages/RegisterPage.tsx +++ b/client/src/app/pages/RegisterPage.tsx @@ -11,7 +11,7 @@ import { Alert, Button, Col, Form } from "react-bootstrap"; import ReCAPTCHA from "react-google-recaptcha"; import toast from "react-hot-toast"; import { Link, useHistory } from "react-router-dom"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { UseFormik } from "types/react"; // seconds it takes for a user to actually read the rules. @@ -51,7 +51,7 @@ export default function RegisterPage() { return; } - const rj = await APIFetchV1( + const rj = await APIFetchV1( "/auth/register", { method: "POST", diff --git a/client/src/app/pages/dashboard/DashboardPage.tsx b/client/src/app/pages/dashboard/DashboardPage.tsx index 8cb8eda96..81b1f158b 100644 --- a/client/src/app/pages/dashboard/DashboardPage.tsx +++ b/client/src/app/pages/dashboard/DashboardPage.tsx @@ -20,7 +20,7 @@ import { ColourConfig, TachiConfig } from "lib/config"; import React, { useContext } from "react"; import { Alert } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { COLOUR_SET, GetGameConfig, PublicUserDocument } from "tachi-common"; +import { COLOUR_SET, GetGameConfig, UserDocument } from "tachi-common"; import { UGSWithRankingData, UserRecentSummary } from "types/api-returns"; import { FolderInfoComponent } from "./users/games/_game/_playtype/folders/FolderSelectPage"; import { GameStatContainer } from "./users/UserGamesPage"; @@ -48,7 +48,7 @@ export function DashboardPage() { ); } -function DashboardLoggedIn({ user }: { user: PublicUserDocument }) { +function DashboardLoggedIn({ user }: { user: UserDocument }) { return (
@@ -64,7 +64,7 @@ function DashboardLoggedIn({ user }: { user: PublicUserDocument }) { ); } -function RecentInfo({ user }: { user: PublicUserDocument }) { +function RecentInfo({ user }: { user: UserDocument }) { const { data, error } = useApiQuery(`/users/${user.id}/recent-summary`); if (error) { @@ -172,7 +172,7 @@ function RecentInfo({ user }: { user: PublicUserDocument }) { ); } -function UserGameStatsInfo({ user }: { user: PublicUserDocument }) { +function UserGameStatsInfo({ user }: { user: UserDocument }) { return (
diff --git a/client/src/app/pages/dashboard/games/_game/_playtype/GPTChartPage.tsx b/client/src/app/pages/dashboard/games/_game/_playtype/GPTChartPage.tsx index f008908cb..90b70156f 100644 --- a/client/src/app/pages/dashboard/games/_game/_playtype/GPTChartPage.tsx +++ b/client/src/app/pages/dashboard/games/_game/_playtype/GPTChartPage.tsx @@ -26,7 +26,7 @@ import { GetGamePTConfig, integer, PBScoreDocument, - PublicUserDocument, + UserDocument, SongDocument, } from "tachi-common"; import { @@ -223,8 +223,8 @@ function ChartLeaderboardTable({ song, }: { data: ChartPBData; - user: PublicUserDocument | null; - userMap: Map; + user: UserDocument | null; + userMap: Map; mode: "leaderboard" | "adjacent" | "rivals"; chart: ChartDocument; song: SongDocument; @@ -282,8 +282,8 @@ function TopShowcase({ userMap, }: { data: ChartPBData; - user: PublicUserDocument | null; - userMap: Map; + user: UserDocument | null; + userMap: Map; }) { // We have a couple of conditions. // User is #1: col-12 #1, @@ -337,7 +337,7 @@ function PlayCard({ name, }: { pb: PBScoreDocument; - user: PublicUserDocument; + user: UserDocument; name: string; }) { return ( diff --git a/client/src/app/pages/dashboard/games/_game/_playtype/GPTMainPage.tsx b/client/src/app/pages/dashboard/games/_game/_playtype/GPTMainPage.tsx index 37b74b3bc..b5bef3b97 100644 --- a/client/src/app/pages/dashboard/games/_game/_playtype/GPTMainPage.tsx +++ b/client/src/app/pages/dashboard/games/_game/_playtype/GPTMainPage.tsx @@ -30,7 +30,7 @@ import { GetGamePTConfig, GoalDocument, integer, - PublicUserDocument, + UserDocument, ScoreDocument, SongDocument, GoalSubscriptionDocument, @@ -75,7 +75,7 @@ export default function GPTMainPage({ game, playtype }: GamePT) { function RecentAchievedGoalsComponent({ game, playtype }: GamePT) { const { data, error } = useApiQuery<{ - users: PublicUserDocument[]; + users: UserDocument[]; goals: GoalDocument[]; goalSubs: GoalSubscriptionDocument[]; }>(`/games/${game}/${playtype}/goals/recently-achieved`); @@ -131,7 +131,7 @@ function RecentAchievedGoalsComponent({ game, playtype }: GamePT) { function RecentHighlightedScoresComponent({ game, playtype }: GamePT) { const { data, error } = useApiQuery<{ scores: ScoreDocument[]; - users: PublicUserDocument[]; + users: UserDocument[]; charts: ChartDocument[]; songs: SongDocument[]; }>(`/games/${game}/${playtype}/scores/highlighted`); @@ -194,7 +194,7 @@ function RecentClassesComponent({ game, playtype }: GamePT) { // return
Looks like nobodies got anything here... yet!
; // } - const userMap = new Map(); + const userMap = new Map(); for (const user of data.users) { userMap.set(user.id, user); @@ -220,7 +220,7 @@ function AchievedClassRow({ user, }: { classInfo: ClassAchievementDocument; - user: PublicUserDocument; + user: UserDocument; }) { const game = classInfo.game; const playtype = classInfo.playtype; diff --git a/client/src/app/pages/dashboard/import/ImportPage.tsx b/client/src/app/pages/dashboard/import/ImportPage.tsx index 87f501f64..470606e6e 100644 --- a/client/src/app/pages/dashboard/import/ImportPage.tsx +++ b/client/src/app/pages/dashboard/import/ImportPage.tsx @@ -18,7 +18,7 @@ import { GetGameConfig, ImportTypes, integer, - PublicUserDocument, + UserDocument, } from "tachi-common"; export default function ImportPage() { @@ -71,7 +71,7 @@ function ShowRecentImports() { return ; } -function InnerShowRecentImports({ user }: { user: PublicUserDocument }) { +function InnerShowRecentImports({ user }: { user: UserDocument }) { const { data, error } = useApiQuery<{ importType: ImportTypes; count: integer }[]>( `/users/${user.id}/recent-imports` ); diff --git a/client/src/app/pages/dashboard/users/ARCIntegrationPage.tsx b/client/src/app/pages/dashboard/users/ARCIntegrationPage.tsx index e268fe251..3e018758c 100644 --- a/client/src/app/pages/dashboard/users/ARCIntegrationPage.tsx +++ b/client/src/app/pages/dashboard/users/ARCIntegrationPage.tsx @@ -7,10 +7,10 @@ import useApiQuery from "components/util/query/useApiQuery"; import React, { useEffect, useState } from "react"; import { Button, Col, Form } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { ARCSavedProfileDocument, PublicUserDocument } from "tachi-common"; +import { ARCSavedProfileDocument, UserDocument } from "tachi-common"; import { SetState } from "types/react"; -export default function ARCIntegrationPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function ARCIntegrationPage({ reqUser }: { reqUser: UserDocument }) { const [iidxID, setIIDXID] = useState(""); const [sdvxID, setSDVXID] = useState(""); diff --git a/client/src/app/pages/dashboard/users/FervidexIntegrationPage.tsx b/client/src/app/pages/dashboard/users/FervidexIntegrationPage.tsx index 63443e634..eea35a52e 100644 --- a/client/src/app/pages/dashboard/users/FervidexIntegrationPage.tsx +++ b/client/src/app/pages/dashboard/users/FervidexIntegrationPage.tsx @@ -6,9 +6,9 @@ import useApiQuery from "components/util/query/useApiQuery"; import React, { useState } from "react"; import { Button, Col, Form } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { FervidexSettingsDocument, PublicUserDocument } from "tachi-common"; +import { FervidexSettingsDocument, UserDocument } from "tachi-common"; -export default function FervidexIntegrationPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function FervidexIntegrationPage({ reqUser }: { reqUser: UserDocument }) { const { data: settings, error } = useApiQuery( `/users/${reqUser.id}/integrations/fervidex/settings` ); @@ -47,7 +47,7 @@ function FervidexForm({ reqUser, settings, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; settings: FervidexSettingsDocument | null; }) { const [formSettings, setFormSettings] = useState>( diff --git a/client/src/app/pages/dashboard/users/KsHookSV6CIntegrationPage.tsx b/client/src/app/pages/dashboard/users/KsHookSV6CIntegrationPage.tsx index 410e6511c..08af92525 100644 --- a/client/src/app/pages/dashboard/users/KsHookSV6CIntegrationPage.tsx +++ b/client/src/app/pages/dashboard/users/KsHookSV6CIntegrationPage.tsx @@ -6,9 +6,9 @@ import useApiQuery from "components/util/query/useApiQuery"; import React, { useState } from "react"; import { Button, Col, Form } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { FervidexSettingsDocument, KsHookSettingsDocument, PublicUserDocument } from "tachi-common"; +import { FervidexSettingsDocument, KsHookSettingsDocument, UserDocument } from "tachi-common"; -export default function KsHookSV6CIntegrationPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function KsHookSV6CIntegrationPage({ reqUser }: { reqUser: UserDocument }) { const { data: settings, error } = useApiQuery( `/users/${reqUser.id}/integrations/kshook-sv6c/settings` ); @@ -47,7 +47,7 @@ function KsHookSV6CForm({ reqUser, settings, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; settings: KsHookSettingsDocument | null; }) { const [formSettings, setFormSettings] = useState>( diff --git a/client/src/app/pages/dashboard/users/NotificationsPage.tsx b/client/src/app/pages/dashboard/users/NotificationsPage.tsx index 87f6cd190..d500ea08a 100644 --- a/client/src/app/pages/dashboard/users/NotificationsPage.tsx +++ b/client/src/app/pages/dashboard/users/NotificationsPage.tsx @@ -7,9 +7,9 @@ import ApiError from "components/util/ApiError"; import Loading from "components/util/Loading"; import useApiQuery from "components/util/query/useApiQuery"; import { UserContext } from "context/UserContext"; -import React, { useContext, useMemo } from "react"; +import React, { useContext, useEffect, useMemo } from "react"; import { Button, Col, Row } from "react-bootstrap"; -import { NotificationDocument, PublicUserDocument } from "tachi-common"; +import { NotificationDocument, UserDocument } from "tachi-common"; export default function NotificationsPage() { const { user } = useContext(UserContext); @@ -23,7 +23,7 @@ export default function NotificationsPage() { return ; } -function NotificationsInnerPage({ user }: { user: PublicUserDocument }) { +function NotificationsInnerPage({ user }: { user: UserDocument }) { const { data, error } = useApiQuery>( `/users/${user.id}/notifications` ); diff --git a/client/src/app/pages/dashboard/users/UserGamesPage.tsx b/client/src/app/pages/dashboard/users/UserGamesPage.tsx index fe66a6bae..eae405731 100644 --- a/client/src/app/pages/dashboard/users/UserGamesPage.tsx +++ b/client/src/app/pages/dashboard/users/UserGamesPage.tsx @@ -9,11 +9,11 @@ import LinkButton from "components/util/LinkButton"; import Muted from "components/util/Muted"; import ReferToUser from "components/util/ReferToUser"; import React from "react"; -import { FormatGame, PublicUserDocument, UserGameStats } from "tachi-common"; +import { FormatGame, UserDocument, UserGameStats } from "tachi-common"; import { UGSWithRankingData } from "types/api-returns"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; } export default function UserGamesPage({ reqUser }: Props) { @@ -54,7 +54,7 @@ export default function UserGamesPage({ reqUser }: Props) { ); } -function GamesInfo({ ugs, reqUser }: { ugs: UserGameStats[]; reqUser: PublicUserDocument }) { +function GamesInfo({ ugs, reqUser }: { ugs: UserGameStats[]; reqUser: UserDocument }) { const gpts = GetSortedGPTs(); const ugsMap = new Map(); diff --git a/client/src/app/pages/dashboard/users/UserImportsPage.tsx b/client/src/app/pages/dashboard/users/UserImportsPage.tsx index b97e5d520..4a7223725 100644 --- a/client/src/app/pages/dashboard/users/UserImportsPage.tsx +++ b/client/src/app/pages/dashboard/users/UserImportsPage.tsx @@ -9,10 +9,10 @@ import useApiQuery from "components/util/query/useApiQuery"; import SelectLinkButton from "components/util/SelectLinkButton"; import React, { useMemo, useState } from "react"; import { Route, Switch } from "react-router-dom"; -import { ImportDocument, ImportTrackerFailed, PublicUserDocument } from "tachi-common"; +import { ImportDocument, ImportTrackerFailed, UserDocument } from "tachi-common"; import { FailedImportDataset, ImportDataset } from "types/tables"; -export default function UserImportsPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function UserImportsPage({ reqUser }: { reqUser: UserDocument }) { useSetSubheader( ["Users", reqUser.username, "Imports"], [reqUser], @@ -69,7 +69,7 @@ function ViewRecentImports({ reqUser, }: { params: URLSearchParams; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const { data, error } = useApiQuery>( `/users/${reqUser.id}/imports?${params.toString()}` @@ -98,7 +98,7 @@ function ViewRecentFailedImports({ reqUser, }: { params: URLSearchParams; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const { data, error } = useApiQuery>( `/users/${reqUser.id}/imports/failed?${params.toString()}` diff --git a/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx b/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx index ee8d03c88..c005c4d87 100644 --- a/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx +++ b/client/src/app/pages/dashboard/users/UserIntegrationsPage.tsx @@ -19,7 +19,7 @@ import { APIPermissions, APITokenDocument, integer, - PublicUserDocument, + UserDocument, TachiAPIClientDocument, } from "tachi-common"; import { SetState } from "types/react"; @@ -27,7 +27,7 @@ import ARCIntegrationPage from "./ARCIntegrationPage"; import FervidexIntegrationPage from "./FervidexIntegrationPage"; import KsHookSV6CIntegrationPage from "./KsHookSV6CIntegrationPage"; -export default function UserIntegrationsPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function UserIntegrationsPage({ reqUser }: { reqUser: UserDocument }) { const [page, setPage] = useState<"services" | "api-keys" | "oauth-clients">("api-keys"); useSetSubheader( @@ -616,7 +616,7 @@ function EditClientModal({ ); } -function ServicesPage({ reqUser }: { reqUser: PublicUserDocument }) { +function ServicesPage({ reqUser }: { reqUser: UserDocument }) { if (mode === "btchi") { return ( @@ -749,7 +749,7 @@ function KAIIntegrationStatus({ ); } -function APIKeysPage({ reqUser }: { reqUser: PublicUserDocument }) { +function APIKeysPage({ reqUser }: { reqUser: UserDocument }) { const [apiKeys, setApiKeys] = useState([]); const [showModal, setShowModal] = useState(false); @@ -817,7 +817,7 @@ function CreateAPIKeyModal({ }: { showModal: boolean; setShowModal: SetState; - reqUser: PublicUserDocument; + reqUser: UserDocument; apiKeys: APITokenDocument[]; setApiKeys: SetState; }) { diff --git a/client/src/app/pages/dashboard/users/UserInvitesPage.tsx b/client/src/app/pages/dashboard/users/UserInvitesPage.tsx index 4c59c40e8..24702cfe9 100644 --- a/client/src/app/pages/dashboard/users/UserInvitesPage.tsx +++ b/client/src/app/pages/dashboard/users/UserInvitesPage.tsx @@ -11,10 +11,10 @@ import useApiQuery from "components/util/query/useApiQuery"; import React from "react"; import { Button, Col, Row } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { integer, InviteCodeDocument, PublicUserDocument } from "tachi-common"; +import { integer, InviteCodeDocument, UserDocument } from "tachi-common"; import Icon from "components/util/Icon"; -export default function UserInvitesPage({ reqUser }: { reqUser: PublicUserDocument }) { +export default function UserInvitesPage({ reqUser }: { reqUser: UserDocument }) { useSetSubheader( ["Users", reqUser.username, "Invites"], [reqUser], @@ -86,10 +86,10 @@ export default function UserInvitesPage({ reqUser }: { reqUser: PublicUserDocume ); } -function InviteList({ reqUser }: { reqUser: PublicUserDocument }) { +function InviteList({ reqUser }: { reqUser: UserDocument }) { const { data, error } = useApiQuery<{ invites: InviteCodeDocument[]; - consumers: PublicUserDocument[]; + consumers: UserDocument[]; }>(`/users/${reqUser.id}/invites`); if (error) { diff --git a/client/src/app/pages/dashboard/users/UserPage.tsx b/client/src/app/pages/dashboard/users/UserPage.tsx index 1d5b049e2..e52427936 100644 --- a/client/src/app/pages/dashboard/users/UserPage.tsx +++ b/client/src/app/pages/dashboard/users/UserPage.tsx @@ -8,10 +8,10 @@ import { UserContext } from "context/UserContext"; import React, { useContext, useEffect, useState } from "react"; import { Button } from "react-bootstrap"; import ReactMarkdown from "react-markdown"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; } export default function UserPage({ reqUser }: Props) { diff --git a/client/src/app/pages/dashboard/users/UserSettingsPage.tsx b/client/src/app/pages/dashboard/users/UserSettingsPage.tsx index bd1a54f05..82d21a161 100644 --- a/client/src/app/pages/dashboard/users/UserSettingsPage.tsx +++ b/client/src/app/pages/dashboard/users/UserSettingsPage.tsx @@ -12,10 +12,10 @@ import { useFormik } from "formik"; import { TachiConfig } from "lib/config"; import React, { useContext, useState } from "react"; import { Alert, Button, Form } from "react-bootstrap"; -import { PublicUserDocument, UserSettings } from "tachi-common"; +import { UserDocument, UserSettings } from "tachi-common"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; } export default function UserSettingsPage({ reqUser }: Props) { @@ -74,7 +74,7 @@ export default function UserSettingsPage({ reqUser }: Props) { ); } -function AccountSettings({ reqUser }: { reqUser: PublicUserDocument }) { +function AccountSettings({ reqUser }: { reqUser: UserDocument }) { const formik = useFormik({ initialValues: { "!oldPassword": "", @@ -162,7 +162,7 @@ function AccountSettings({ reqUser }: { reqUser: PublicUserDocument }) { ); } -function PreferencesForm({ reqUser }: { reqUser: PublicUserDocument }) { +function PreferencesForm({ reqUser }: { reqUser: UserDocument }) { const { settings, setSettings } = useContext(UserSettingsContext); const formik = useFormik({ @@ -252,7 +252,7 @@ function PreferencesForm({ reqUser }: { reqUser: PublicUserDocument }) { ); } -function ImageForm({ reqUser }: { reqUser: PublicUserDocument }) { +function ImageForm({ reqUser }: { reqUser: UserDocument }) { const [pfp, setPfp] = useState(); const [banner, setBanner] = useState(); @@ -313,7 +313,7 @@ function ImageForm({ reqUser }: { reqUser: PublicUserDocument }) { ); } -function SocialMediaForm({ reqUser }: { reqUser: PublicUserDocument }) { +function SocialMediaForm({ reqUser }: { reqUser: UserDocument }) { const placeholders = { discord: "Example#0000", twitter: "Twitter Handle", @@ -340,7 +340,7 @@ function SocialMediaForm({ reqUser }: { reqUser: PublicUserDocument }) { valuesClone[vx] = values[vx] || null; } - const rj = await APIFetchV1( + const rj = await APIFetchV1( "/users/me", { method: "PATCH", @@ -423,7 +423,7 @@ function FileUploadController({ }: { file?: File; type: "pfp" | "banner"; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { return (
diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/LeaderboardsPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/LeaderboardsPage.tsx index f663e202b..1f80b68ec 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/LeaderboardsPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/LeaderboardsPage.tsx @@ -18,7 +18,7 @@ import { GetGamePTConfig, IDStrings, integer, - PublicUserDocument, + UserDocument, UGSRatingsLookup, UserGameStats, } from "tachi-common"; @@ -35,7 +35,7 @@ export default function LeaderboardsPage({ reqUser, game, playtype, -}: { reqUser: PublicUserDocument } & GamePT) { +}: { reqUser: UserDocument } & GamePT) { const gameConfig = GetGameConfig(game); useSetSubheader( ["Users", reqUser.username, "Games", gameConfig.name, playtype, "Leaderboard"], @@ -86,7 +86,7 @@ function LeaderboardsPageContent({ data, alg, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; data: LeaderboardsData; alg: UGSRatingsLookup[IDStrings]; setAlg: SetState; @@ -95,7 +95,7 @@ function LeaderboardsPageContent({ const gptConfig = GetGamePTConfig(game, playtype); - const userMap = new Map(); + const userMap = new Map(); for (const u of stats.users) { userMap.set(u.id, u); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/OverviewPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/OverviewPage.tsx index 6afcaf9b5..bb909a045 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/OverviewPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/OverviewPage.tsx @@ -23,7 +23,7 @@ import { FormatGame, GetGameConfig, GetGamePTConfig, - PublicUserDocument, + UserDocument, ScoreDocument, SessionDocument, UserGameStats, @@ -37,7 +37,7 @@ export default function OverviewPage({ reqUser, game, playtype, -}: { reqUser: PublicUserDocument } & GamePT) { +}: { reqUser: UserDocument } & GamePT) { const gameConfig = GetGameConfig(game); useSetSubheader( ["Users", reqUser.username, "Games", gameConfig.name, playtype], @@ -54,7 +54,7 @@ export default function OverviewPage({ ); } -function LastSession({ reqUser, game, playtype }: { reqUser: PublicUserDocument } & GamePT) { +function LastSession({ reqUser, game, playtype }: { reqUser: UserDocument } & GamePT) { return ( { @@ -170,7 +170,7 @@ function RecentSessionScoreInfo({ }: { session: SessionDocument; sessionData: SessionReturns; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const { game, playtype } = session; @@ -249,7 +249,7 @@ function RecentSessionScoreInfo({ ); } -function RankingInfo({ reqUser, game, playtype }: { reqUser: PublicUserDocument } & GamePT) { +function RankingInfo({ reqUser, game, playtype }: { reqUser: UserDocument } & GamePT) { return ( { @@ -274,7 +274,7 @@ function UserHistory({ reqUser, game, playtype, -}: { data: UGPTHistory; reqUser: PublicUserDocument } & GamePT) { +}: { data: UGPTHistory; reqUser: UserDocument } & GamePT) { const gptConfig = GetGamePTConfig(game, playtype); const [mode, setMode] = useState<"ranking" | "playcount" | "rating">("rating"); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/ScoresPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/ScoresPage.tsx index e66731f44..1d3e15c08 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/ScoresPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/ScoresPage.tsx @@ -20,7 +20,7 @@ import { GetGamePTConfig, IDStrings, PBScoreDocument, - PublicUserDocument, + UserDocument, ScoreCalculatedDataLookup, ScoreDocument, SongDocument, @@ -34,7 +34,7 @@ export default function ScoresPage({ game, playtype, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; } & GamePT) { const gameConfig = GetGameConfig(game); const gptConfig = GetGamePTConfig(game, playtype); @@ -141,7 +141,7 @@ function AlgSelector({ ); } -function useFetchPBs(url: string, reqUser: PublicUserDocument) { +function useFetchPBs(url: string, reqUser: UserDocument) { const { data, error } = useQuery(url, async () => { const res = await APIFetchV1<{ pbs: PBScoreDocument<"iidx:SP">[]; @@ -168,7 +168,7 @@ function PBsOverview({ url, alg, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; url: string; indexCol?: boolean; showPlaycount?: boolean; @@ -214,7 +214,7 @@ function FormatData< D extends PBScoreDocument | ScoreDocument, I extends IDStrings = IDStrings, G extends Game = Game ->(d: D[], songs: SongDocument[], charts: ChartDocument[], reqUser: PublicUserDocument) { +>(d: D[], songs: SongDocument[], charts: ChartDocument[], reqUser: UserDocument) { const songMap = new Map(); const chartMap = new Map(); @@ -239,7 +239,7 @@ function FormatData< return data; } -function useFetchScores(url: string, reqUser: PublicUserDocument) { +function useFetchScores(url: string, reqUser: UserDocument) { const { data, error } = useQuery(url, async () => { const res = await APIFetchV1<{ scores: ScoreDocument[]; @@ -264,7 +264,7 @@ function PBsSearch({ search, alg, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; search: string; alg?: ScoreCalculatedDataLookup[IDStrings]; } & GamePT) { @@ -286,7 +286,7 @@ function PBsSearch({ ); } -function ScoresOverview({ reqUser, game, playtype }: { reqUser: PublicUserDocument } & GamePT) { +function ScoresOverview({ reqUser, game, playtype }: { reqUser: UserDocument } & GamePT) { const [search, setSearch] = useState(""); const { data, error } = useFetchScores( @@ -321,7 +321,7 @@ function ScoresSearch({ game, playtype, search, -}: { reqUser: PublicUserDocument; search: string } & GamePT) { +}: { reqUser: UserDocument; search: string } & GamePT) { const { data, error } = useFetchScores( `/users/${reqUser.id}/games/${game}/${playtype}/scores?search=${search}`, reqUser diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/SessionsPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/SessionsPage.tsx index 269c7f8b7..2de286230 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/SessionsPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/SessionsPage.tsx @@ -14,7 +14,7 @@ import { useQuery } from "react-query"; import { FormatGame, GetGameConfig, - PublicUserDocument, + UserDocument, SessionDocument, UnsuccessfulAPIResponse, } from "tachi-common"; @@ -25,7 +25,7 @@ export default function SessionsPage({ game, playtype, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; } & GamePT) { const [sessionSet, setSessionSet] = useState<"recent" | "best" | "highlighted">("best"); const [search, setSearch] = useState(""); @@ -116,7 +116,7 @@ function SearchSessionsTable({ playtype, reqUser, baseUrl, -}: { search: string; baseUrl: string; reqUser: PublicUserDocument } & GamePT) { +}: { search: string; baseUrl: string; reqUser: UserDocument } & GamePT) { const { data, error } = useQuery( `${baseUrl}?search=${search}`, async () => { diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/SpecificSessionPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/SpecificSessionPage.tsx index 974da9e9e..d767e68a1 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/SpecificSessionPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/SpecificSessionPage.tsx @@ -15,11 +15,11 @@ import { UserContext } from "context/UserContext"; import React, { useContext, useMemo, useState } from "react"; import { Badge, Button, Col, Form, Modal, Row } from "react-bootstrap"; import { Redirect, useParams } from "react-router-dom"; -import { GetGameConfig, PublicUserDocument, SessionDocument } from "tachi-common"; +import { GetGameConfig, UserDocument, SessionDocument } from "tachi-common"; import { SessionReturns } from "types/api-returns"; import { GamePT, SetState } from "types/react"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function SpecificSessionPage({ reqUser, game, playtype }: Props) { const { sessionID } = useParams<{ sessionID: string }>(); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/UGPTSettingsPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/UGPTSettingsPage.tsx index 0b74228f9..dbdcd437a 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/UGPTSettingsPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/UGPTSettingsPage.tsx @@ -22,7 +22,7 @@ import { FormatGame, GetGameConfig, GetGamePTConfig, - PublicUserDocument, + UserDocument, ShowcaseStatDetails, TableDocument, UGPTSettings, @@ -31,7 +31,7 @@ import { GamePT, SetState } from "types/react"; import { UGPTContext } from "context/UGPTContext"; import { ErrorPage } from "app/pages/ErrorPage"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function UGPTSettingsPage({ reqUser, game, playtype }: Props) { const query = useQueryString(); @@ -108,7 +108,7 @@ function PreferencesForm({ reqUser, game, playtype }: Props) { preferredRanking: settings!.preferences.preferredRanking ?? "global", }, onSubmit: async (values) => { - const rj = await APIFetchV1( + const rj = await APIFetchV1( `/users/${reqUser.id}/games/${game}/${playtype}/settings`, { method: "PATCH", diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderComparePage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderComparePage.tsx index 31efeaddd..7596edc86 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderComparePage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderComparePage.tsx @@ -11,7 +11,7 @@ import useLUGPTSettings from "components/util/useLUGPTSettings"; import React, { useContext, useEffect, useMemo, useState } from "react"; import { Button, Col, Form, Row } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { COLOUR_SET, FolderDocument, GetGamePTConfig, PublicUserDocument } from "tachi-common"; +import { COLOUR_SET, FolderDocument, GetGamePTConfig, UserDocument } from "tachi-common"; import { UGPTFolderReturns, UGPTStatsReturn } from "types/api-returns"; import { GamePT } from "types/react"; import { ComparePBsDataset } from "types/tables"; @@ -26,17 +26,17 @@ export default function RivalCompareFolderPage({ playtype, folder, }: GamePT & { - reqUser: PublicUserDocument; + reqUser: UserDocument; folder: FolderDocument; }) { const { settings } = useLUGPTSettings(); const { user } = useContext(UserContext); - const [selectedUser, setSelectedUser] = useState(null); + const [selectedUser, setSelectedUser] = useState(null); const [show, setShow] = useState(false); // honestly don't care if this errors or not - const { data, error } = useApiQuery>( + const { data, error } = useApiQuery>( `/users/${settings?.userID}/games/${game}/${playtype}/rivals`, undefined // [settings?.rivals.join(",")] @@ -121,8 +121,8 @@ function FolderCompare({ withUser, folder, }: { - reqUser: PublicUserDocument; - withUser: PublicUserDocument; + reqUser: UserDocument; + withUser: UserDocument; folder: FolderDocument; } & GamePT) { const gptConfig = GetGamePTConfig(game, playtype); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx index 74ca2466a..eefa93033 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderSelectPage.tsx @@ -13,11 +13,11 @@ import { useBucket } from "components/util/useBucket"; import useUGPTBase from "components/util/useUGPTBase"; import { UserContext } from "context/UserContext"; import React, { useContext, useMemo, useState } from "react"; -import { FolderDocument, GetGamePTConfig, PublicUserDocument } from "tachi-common"; +import { FolderDocument, GetGamePTConfig, UserDocument } from "tachi-common"; import { FolderStatsInfo, UGPTFolderSearch } from "types/api-returns"; import { GamePT } from "types/react"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function FoldersSearch({ reqUser, game, playtype }: Props) { const [search, setSearch] = useState(""); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx index 528d01992..c3757b39c 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FolderTablePage.tsx @@ -25,14 +25,14 @@ import { Game, GamePTConfig, GetGamePTConfig, - PublicUserDocument, + UserDocument, TableDocument, } from "tachi-common"; import { FolderStatsInfo, UGPTTableReturns } from "types/api-returns"; import { Playtype } from "types/tachi"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; } diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FoldersMainPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FoldersMainPage.tsx index 9fef9893b..ec3d8dedd 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FoldersMainPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/FoldersMainPage.tsx @@ -7,14 +7,14 @@ import { UserContext } from "context/UserContext"; import { AllLUGPTStatsContext } from "context/AllLUGPTStatsContext"; import React, { useContext } from "react"; import { Route, Switch } from "react-router-dom"; -import { FormatGame, GetGameConfig, PublicUserDocument } from "tachi-common"; +import { FormatGame, GetGameConfig, UserDocument } from "tachi-common"; import { GamePT } from "types/react"; import FolderSelectPage from "./FolderSelectPage"; import FolderTablePage from "./FolderTablePage"; import RecentFoldersPage from "./RecentFoldersPage"; import SpecificFolderPage from "./SpecificFolderPage"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function FoldersMainPage({ reqUser, game, playtype }: Props) { const gameConfig = GetGameConfig(game); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/RecentFoldersPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/RecentFoldersPage.tsx index b0b1fbfeb..113a95ae8 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/RecentFoldersPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/RecentFoldersPage.tsx @@ -5,7 +5,7 @@ import { UserContext } from "context/UserContext"; import React, { useContext } from "react"; import { Row } from "react-bootstrap"; import { Link } from "react-router-dom"; -import { FolderDocument, PublicUserDocument, RecentlyViewedFolderDocument } from "tachi-common"; +import { FolderDocument, UserDocument, RecentlyViewedFolderDocument } from "tachi-common"; import { FolderStatsInfo } from "types/api-returns"; import { GamePT } from "types/react"; import { FolderInfoComponent } from "./FolderSelectPage"; @@ -14,7 +14,7 @@ export default function RecentFoldersPage({ reqUser, game, playtype, -}: { reqUser: PublicUserDocument } & GamePT) { +}: { reqUser: UserDocument } & GamePT) { const { user } = useContext(UserContext); if (!user) { diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx index 8b758aa78..93033952e 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/folders/SpecificFolderPage.tsx @@ -31,7 +31,7 @@ import { GPTTierlists, IDStrings, integer, - PublicUserDocument, + UserDocument, ScoreDocument, SongDocument, } from "tachi-common"; @@ -41,7 +41,7 @@ import { Playtype } from "types/tachi"; import FolderComparePage from "./FolderComparePage"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; } @@ -481,7 +481,7 @@ function TierlistInfoLadder({ dataMap: Map; game: Game; playtype: Playtype; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const buckets: TierlistInfo[][] = useMemo(() => { const buckets: TierlistInfo[][] = []; @@ -579,7 +579,7 @@ function TierlistInfoBucketValues({ dataMap: Map; game: Game; i: integer; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const data = dataMap.get(tierlistInfo.chartID)!; diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsMainPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsMainPage.tsx index e604add93..35eea1a6e 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsMainPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsMainPage.tsx @@ -8,7 +8,7 @@ import useUGPTBase from "components/util/useUGPTBase"; import React from "react"; import { Col, Row } from "react-bootstrap"; import { Redirect, Route, Switch } from "react-router-dom"; -import { FormatGame, Game, GetGameConfig, Playtype, PublicUserDocument } from "tachi-common"; +import { FormatGame, Game, GetGameConfig, Playtype, UserDocument } from "tachi-common"; import RivalsManagePage from "./RivalsManagePage"; export default function RivalsMainPage({ @@ -16,7 +16,7 @@ export default function RivalsMainPage({ game, playtype, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; }) { diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsManagePage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsManagePage.tsx index e1cb3dc98..6298cfd15 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsManagePage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/rivals/RivalsManagePage.tsx @@ -12,7 +12,7 @@ import UserIcon from "components/util/UserIcon"; import { UserContext } from "context/UserContext"; import React, { useContext, useState } from "react"; import { Button, Col } from "react-bootstrap"; -import { FormatGame, Game, GetGameConfig, Playtype, PublicUserDocument } from "tachi-common"; +import { FormatGame, Game, GetGameConfig, Playtype, UserDocument } from "tachi-common"; import useLUGPTSettings from "components/util/useLUGPTSettings"; import useSetSubheader from "components/layout/header/useSetSubheader"; @@ -21,7 +21,7 @@ export default function RivalsManagePage({ game, playtype, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; }) { @@ -35,7 +35,7 @@ export default function RivalsManagePage({ const { settings } = useLUGPTSettings(); - const { data, error } = useApiQuery( + const { data, error } = useApiQuery( `/users/${reqUser.id}/games/${game}/${playtype}/rivals`, {}, [`fetch-rivals-${settings?.rivals.join(",")}`] @@ -45,7 +45,7 @@ export default function RivalsManagePage({ data: challengers, isLoading: cIsLoading, error: cError, - } = useApiQuery( + } = useApiQuery( `/users/${reqUser.id}/games/${game}/${playtype}/rivals/challengers` ); @@ -83,11 +83,11 @@ function RivalsOverviewPage({ initialRivals, challengers, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; - initialRivals: Array; - challengers: Array; + initialRivals: Array; + challengers: Array; }) { const { user } = useContext(UserContext); diff --git a/client/src/app/pages/dashboard/users/games/_game/_playtype/targets/TargetsPage.tsx b/client/src/app/pages/dashboard/users/games/_game/_playtype/targets/TargetsPage.tsx index 0c1f82864..ea3214bb3 100644 --- a/client/src/app/pages/dashboard/users/games/_game/_playtype/targets/TargetsPage.tsx +++ b/client/src/app/pages/dashboard/users/games/_game/_playtype/targets/TargetsPage.tsx @@ -6,11 +6,11 @@ import useUGPTBase from "components/util/useUGPTBase"; import React from "react"; import { Col, Row } from "react-bootstrap"; import { Route, Switch } from "react-router-dom"; -import { FormatGame, GetGameConfig, PublicUserDocument } from "tachi-common"; +import { FormatGame, GetGameConfig, UserDocument } from "tachi-common"; import { GamePT } from "types/react"; import GoalsPage from "./GoalsPage"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function TargetsPage({ reqUser, game, playtype }: Props) { const gameConfig = GetGameConfig(game); diff --git a/client/src/app/routes/UserRoutes.tsx b/client/src/app/routes/UserRoutes.tsx index 871707b11..f9ab2157b 100644 --- a/client/src/app/routes/UserRoutes.tsx +++ b/client/src/app/routes/UserRoutes.tsx @@ -27,7 +27,7 @@ import { UserSettingsContext } from "context/UserSettingsContext"; import React, { useContext, useEffect } from "react"; import { useQuery } from "react-query"; import { Redirect, Route, Switch, useHistory, useParams } from "react-router-dom"; -import { FormatGame, Game, GetGameConfig, PublicUserDocument, UserGameStats } from "tachi-common"; +import { FormatGame, Game, GetGameConfig, UserDocument, UserGameStats } from "tachi-common"; import { UGPTStatsReturn } from "types/api-returns"; import UserImportsPage from "app/pages/dashboard/users/UserImportsPage"; import ScoresPage from "../pages/dashboard/users/games/_game/_playtype/ScoresPage"; @@ -38,7 +38,7 @@ export default function UserRoutes() { const { userID } = useParams<{ userID: string }>(); const history = useHistory(); - const { data: reqUser, error } = useApiQuery(`/users/${params.userID}`); + const { data: reqUser, error } = useApiQuery(`/users/${params.userID}`); const { setBackground } = useContext(BackgroundContext); useEffect(() => { @@ -95,7 +95,7 @@ export default function UserRoutes() { ); } -function UserProfileRoutes({ reqUser }: { reqUser: PublicUserDocument }) { +function UserProfileRoutes({ reqUser }: { reqUser: UserDocument }) { const { settings } = useContext(UserSettingsContext); return ( @@ -145,7 +145,7 @@ function UserProfileRoutes({ reqUser }: { reqUser: PublicUserDocument }) { ); } -function UserGameRoutes({ reqUser }: { reqUser: PublicUserDocument }) { +function UserGameRoutes({ reqUser }: { reqUser: UserDocument }) { const { game } = useParams<{ game: string }>(); if (!IsSupportedGame(game)) { @@ -180,7 +180,7 @@ function UserGameRoutes({ reqUser }: { reqUser: PublicUserDocument }) { ); } -function UserGamePlaytypeRoutes({ reqUser, game }: { reqUser: PublicUserDocument; game: Game }) { +function UserGamePlaytypeRoutes({ reqUser, game }: { reqUser: UserDocument; game: Game }) { const { playtype } = useParams<{ playtype: string }>(); if (!IsSupportedPlaytype(game, playtype)) { diff --git a/client/src/components/game/folder/FolderInfoHeader.tsx b/client/src/components/game/folder/FolderInfoHeader.tsx index 81eff80fe..9426b5f09 100644 --- a/client/src/components/game/folder/FolderInfoHeader.tsx +++ b/client/src/components/game/folder/FolderInfoHeader.tsx @@ -4,7 +4,7 @@ import Icon from "components/util/Icon"; import SelectButton from "components/util/SelectButton"; import { useBucket } from "components/util/useBucket"; import React, { useState } from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { GamePT } from "types/react"; import { FolderDataset } from "types/tables"; import FolderMinimap from "./FolderMinimap"; @@ -17,7 +17,7 @@ export default function FolderInfoHeader({ folderDataset, folderTitle, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; folderDataset: FolderDataset; folderTitle: string; } & GamePT) { diff --git a/client/src/components/game/folder/FolderMinimap.tsx b/client/src/components/game/folder/FolderMinimap.tsx index d38b46bb5..4cd2c66eb 100644 --- a/client/src/components/game/folder/FolderMinimap.tsx +++ b/client/src/components/game/folder/FolderMinimap.tsx @@ -17,7 +17,7 @@ import { GamePTConfig, GetGamePTConfig, IIDX_LAMPS, - PublicUserDocument, + UserDocument, SessionDocument, } from "tachi-common"; import { GamePT } from "types/react"; @@ -25,7 +25,7 @@ import { FolderDataset } from "types/tables"; type Props = { folderDataset: FolderDataset; - reqUser: PublicUserDocument; + reqUser: UserDocument; view: "grade" | "lamp"; } & GamePT; diff --git a/client/src/components/imports/ImportInfo.tsx b/client/src/components/imports/ImportInfo.tsx index 371b4794b..f7da9a300 100644 --- a/client/src/components/imports/ImportInfo.tsx +++ b/client/src/components/imports/ImportInfo.tsx @@ -17,7 +17,7 @@ import { ChartDocument, Game, ImportDocument, - PublicUserDocument, + UserDocument, ScoreDocument, SessionDocument, SongDocument, @@ -32,7 +32,7 @@ interface Data { charts: ChartDocument[]; songs: SongDocument[]; sessions: SessionDocument[]; - user: PublicUserDocument; + user: UserDocument; } export default function ImportInfo({ diff --git a/client/src/components/layout/header/SearchBar.tsx b/client/src/components/layout/header/SearchBar.tsx index 01c8a72ba..f9b6a8ed8 100644 --- a/client/src/components/layout/header/SearchBar.tsx +++ b/client/src/components/layout/header/SearchBar.tsx @@ -6,13 +6,13 @@ import Loading from "components/util/Loading"; import { TachiConfig } from "lib/config"; import React, { useEffect, useMemo, useRef, useState } from "react"; import { Link, useLocation } from "react-router-dom"; -import { Game, GetGameConfig, integer, PublicUserDocument, SongDocument } from "tachi-common"; +import { Game, GetGameConfig, integer, UserDocument, SongDocument } from "tachi-common"; import { GamePT, JustChildren } from "types/react"; import { Playtype } from "types/tachi"; import QuickTooltip from "../misc/QuickTooltip"; interface SearchReturns { - users?: PublicUserDocument[]; + users?: UserDocument[]; songs: (SongDocument & { __textScore: number; game: Game })[]; } @@ -38,7 +38,7 @@ function GPTSearchResult({ playtype, tabIndex, }: { - user: PublicUserDocument; + user: UserDocument; tabIndex: integer; } & GamePT) { const currentLoc = window.location.href.split(`games/${game}/${playtype}`)[1]; diff --git a/client/src/components/layout/header/UserNotificationButton.tsx b/client/src/components/layout/header/UserNotificationButton.tsx index 399c8c93b..47eb6230d 100644 --- a/client/src/components/layout/header/UserNotificationButton.tsx +++ b/client/src/components/layout/header/UserNotificationButton.tsx @@ -2,9 +2,9 @@ import Icon from "components/util/Icon"; import useApiQuery from "components/util/query/useApiQuery"; import React, { useMemo } from "react"; import { Link } from "react-router-dom"; -import { NotificationDocument, PublicUserDocument } from "tachi-common"; +import { NotificationDocument, UserDocument } from "tachi-common"; -export function UserNotificationButton({ user }: { user: PublicUserDocument }) { +export function UserNotificationButton({ user }: { user: UserDocument }) { // don't care whether it errors or not, tbh const { data } = useApiQuery>(`/users/${user.id}/notifications`); diff --git a/client/src/components/layout/header/UserProfileDropdown.tsx b/client/src/components/layout/header/UserProfileDropdown.tsx index 627cddf73..797ff504f 100644 --- a/client/src/components/layout/header/UserProfileDropdown.tsx +++ b/client/src/components/layout/header/UserProfileDropdown.tsx @@ -10,9 +10,9 @@ import { Button } from "react-bootstrap"; import Dropdown from "react-bootstrap/Dropdown"; import toast from "react-hot-toast"; import { Link } from "react-router-dom"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; -export function UserProfileDropdown({ user }: { user: PublicUserDocument }) { +export function UserProfileDropdown({ user }: { user: UserDocument }) { const { setUser } = useContext(UserContext); const [heySplash] = useState(RFA(heySplashes)); diff --git a/client/src/components/layout/screens/LoadingScreen.tsx b/client/src/components/layout/screens/LoadingScreen.tsx index 582c637c9..3fad2d442 100644 --- a/client/src/components/layout/screens/LoadingScreen.tsx +++ b/client/src/components/layout/screens/LoadingScreen.tsx @@ -2,7 +2,7 @@ import { APIFetchV1 } from "util/api"; import { UserContext } from "context/UserContext"; import { TachiConfig } from "lib/config"; import React, { useContext, useEffect, useState } from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { JustChildren } from "types/react"; import { SplashScreen } from "./SplashScreen"; @@ -28,7 +28,7 @@ export function LoadingScreen({ children }: JustChildren) { ); Promise.all([ - APIFetchV1("/users/me").then((rj) => { + APIFetchV1("/users/me").then((rj) => { if (rj.success) { setUser(rj.body); } else { diff --git a/client/src/components/tables/cells/UserCell.tsx b/client/src/components/tables/cells/UserCell.tsx index 273d354a0..6c60f57aa 100644 --- a/client/src/components/tables/cells/UserCell.tsx +++ b/client/src/components/tables/cells/UserCell.tsx @@ -1,10 +1,10 @@ import { ToAPIURL } from "util/api"; import React from "react"; import { Link } from "react-router-dom"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { GamePT } from "types/react"; -export default function UserCell({ user, game, playtype }: { user: PublicUserDocument } & GamePT) { +export default function UserCell({ user, game, playtype }: { user: UserDocument } & GamePT) { return ( ({ thisScore, defaultView = "moreInfo", }: { - user: PublicUserDocument; + user: UserDocument; chart: ChartDocument; scoreState: ScoreState; defaultView?: "vsPB" | "moreInfo" | "history" | "debug" | "manage" | "rivals"; diff --git a/client/src/components/tables/goals/GoalSubTable.tsx b/client/src/components/tables/goals/GoalSubTable.tsx index cd2479889..900572412 100644 --- a/client/src/components/tables/goals/GoalSubTable.tsx +++ b/client/src/components/tables/goals/GoalSubTable.tsx @@ -5,7 +5,7 @@ import React from "react"; import { COLOUR_SET, GoalDocument, - PublicUserDocument, + UserDocument, GoalSubscriptionDocument, } from "tachi-common"; import { GamePT } from "types/react"; @@ -15,7 +15,7 @@ import TachiTable, { Header } from "../components/TachiTable"; export type GoalSubDataset = (GoalSubscriptionDocument & { __related: { - user: PublicUserDocument; + user: UserDocument; goal: GoalDocument; }; })[]; diff --git a/client/src/components/tables/sessions/GenericSessionTable.tsx b/client/src/components/tables/sessions/GenericSessionTable.tsx index 02182c833..b9b3183cc 100644 --- a/client/src/components/tables/sessions/GenericSessionTable.tsx +++ b/client/src/components/tables/sessions/GenericSessionTable.tsx @@ -10,7 +10,7 @@ import { GetGamePTConfig, IDStrings, integer, - PublicUserDocument, + UserDocument, SessionCalculatedDataLookup, SessionDocument, } from "tachi-common"; @@ -30,7 +30,7 @@ export default function GenericSessionTable({ }: { dataset: SessionDataset; indexCol?: boolean; - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; }) { @@ -108,7 +108,7 @@ function Row({ data: SessionDataset[0]; // reqUser: PublicUserDocument; rating: SessionCalculatedDataLookup[IDStrings]; - reqUser: PublicUserDocument; + reqUser: UserDocument; indexCol?: boolean; }) { return ( diff --git a/client/src/components/user/ProfilePicture.tsx b/client/src/components/user/ProfilePicture.tsx index be8722506..7e7e15962 100644 --- a/client/src/components/user/ProfilePicture.tsx +++ b/client/src/components/user/ProfilePicture.tsx @@ -1,12 +1,12 @@ import { ToAPIURL } from "util/api"; import React from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; export default function ProfilePicture({ user, src, }: { - user: PublicUserDocument | string; + user: UserDocument | string; src?: string; }) { if (typeof user === "string") { diff --git a/client/src/components/user/UGPTHeader.tsx b/client/src/components/user/UGPTHeader.tsx index 757030a90..96f450c8b 100644 --- a/client/src/components/user/UGPTHeader.tsx +++ b/client/src/components/user/UGPTHeader.tsx @@ -4,7 +4,7 @@ import NavItem from "components/nav/NavItem"; import MiniTable from "components/tables/components/MiniTable"; import Divider from "components/util/Divider"; import React from "react"; -import { Game, PublicUserDocument } from "tachi-common"; +import { Game, UserDocument } from "tachi-common"; import { UGPTStatsReturn } from "types/api-returns"; import { Playtype } from "types/tachi"; import ProfileBadges from "./ProfileBadges"; @@ -18,7 +18,7 @@ export function UGPTHeaderBody({ playtype, stats, }: { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; stats: UGPTStatsReturn; diff --git a/client/src/components/user/UGPTStatContainer.tsx b/client/src/components/user/UGPTStatContainer.tsx index 769772c0b..0e58b3bac 100644 --- a/client/src/components/user/UGPTStatContainer.tsx +++ b/client/src/components/user/UGPTStatContainer.tsx @@ -4,12 +4,12 @@ import useApiQuery from "components/util/query/useApiQuery"; import { UserContext } from "context/UserContext"; import React, { useContext } from "react"; import { useQuery } from "react-query"; -import { integer, PublicUserDocument, ShowcaseStatDetails } from "tachi-common"; +import { integer, UserDocument, ShowcaseStatDetails } from "tachi-common"; import { UGPTPreferenceStatsReturn } from "types/api-returns"; import { GamePT } from "types/react"; import { StatDisplay } from "./UGPTStatShowcase"; -type Props = { reqUser: PublicUserDocument } & GamePT; +type Props = { reqUser: UserDocument } & GamePT; export default function UGPTStatContainer({ stat, diff --git a/client/src/components/user/UGPTStatCreator.tsx b/client/src/components/user/UGPTStatCreator.tsx index c06cfd270..35ccd2a23 100644 --- a/client/src/components/user/UGPTStatCreator.tsx +++ b/client/src/components/user/UGPTStatCreator.tsx @@ -8,7 +8,7 @@ import { FormatDifficulty, Game, GetGamePTConfig, - PublicUserDocument, + UserDocument, ShowcaseStatDetails, } from "tachi-common"; import { GamePT, SetState } from "types/react"; @@ -19,7 +19,7 @@ import Muted from "components/util/Muted"; import { UserContext } from "context/UserContext"; interface Props { - reqUser: PublicUserDocument; + reqUser: UserDocument; game: Game; playtype: Playtype; onCreate: (stat: ShowcaseStatDetails) => void; diff --git a/client/src/components/user/UGPTStatShowcase.tsx b/client/src/components/user/UGPTStatShowcase.tsx index b47f0dddd..e2fa511b8 100644 --- a/client/src/components/user/UGPTStatShowcase.tsx +++ b/client/src/components/user/UGPTStatShowcase.tsx @@ -20,7 +20,7 @@ import { FormatChart, Game, GetGamePTConfig, - PublicUserDocument, + UserDocument, ShowcaseStatDetails, SongDocument, } from "tachi-common"; @@ -34,7 +34,7 @@ export default function UGPTStatShowcase({ reqUser, game, playtype, -}: { reqUser: PublicUserDocument } & GamePT) { +}: { reqUser: UserDocument } & GamePT) { const { ugs } = useContext(AllLUGPTStatsContext); const { user } = useContext(UserContext); @@ -377,7 +377,7 @@ export function StatDisplay({ }: { statData: UGPTPreferenceStatsReturn; compareData?: UGPTPreferenceStatsReturn; - reqUser: PublicUserDocument; + reqUser: UserDocument; } & GamePT) { const { stat, result, related } = statData; const { user } = useContext(UserContext); diff --git a/client/src/components/user/UserHeader.tsx b/client/src/components/user/UserHeader.tsx index a2bf9cb5b..317b9651d 100644 --- a/client/src/components/user/UserHeader.tsx +++ b/client/src/components/user/UserHeader.tsx @@ -10,12 +10,12 @@ import { UserContext } from "context/UserContext"; import { ClientConfig } from "lib/config"; import React, { useContext, useState } from "react"; import { Button, Form, Modal } from "react-bootstrap"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { SetState } from "types/react"; import ProfileBadges from "./ProfileBadges"; import ProfilePicture from "./ProfilePicture"; -export function UserHeaderBody({ reqUser }: { reqUser: PublicUserDocument }) { +export function UserHeaderBody({ reqUser }: { reqUser: UserDocument }) { function ConditionalSocialMediaRender({ mode, href, @@ -87,7 +87,7 @@ export function UserBottomNav({ reqUser, }: { baseUrl: string; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const { user } = useContext(UserContext); @@ -138,7 +138,7 @@ export function UserBottomNav({ ); } -function StatusComponent({ reqUser }: { reqUser: PublicUserDocument }) { +function StatusComponent({ reqUser }: { reqUser: UserDocument }) { const { user } = useContext(UserContext); const isRequestedUser = user?.id === reqUser.id; @@ -182,7 +182,7 @@ function ChangeStatusModal({ }: { modalShow: boolean; setModalShow: SetState; - reqUser: PublicUserDocument; + reqUser: UserDocument; }) { const [status, setStatus] = useState(reqUser.status); const [innerStatus, setInnerStatus] = useState(reqUser.status ?? ""); diff --git a/client/src/components/util/OAuthMoreInfo.tsx b/client/src/components/util/OAuthMoreInfo.tsx index 1133d8d4e..b855be4b4 100644 --- a/client/src/components/util/OAuthMoreInfo.tsx +++ b/client/src/components/util/OAuthMoreInfo.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { PublicUserDocument, TachiAPIClientDocument } from "tachi-common"; +import { UserDocument, TachiAPIClientDocument } from "tachi-common"; import ApiError from "./ApiError"; import Loading from "./Loading"; import Muted from "./Muted"; @@ -10,7 +10,7 @@ export default function OAuthMoreInfo({ }: { client: Omit; }) { - const { data, error } = useApiQuery(`/users/${client.author}`); + const { data, error } = useApiQuery(`/users/${client.author}`); if (error) { return ; diff --git a/client/src/components/util/ReferToUser.tsx b/client/src/components/util/ReferToUser.tsx index c1188def8..fd0d9bb8d 100644 --- a/client/src/components/util/ReferToUser.tsx +++ b/client/src/components/util/ReferToUser.tsx @@ -1,8 +1,8 @@ import { UserContext } from "context/UserContext"; import React, { useContext } from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; -export default function ReferToUser({ reqUser }: { reqUser: PublicUserDocument }) { +export default function ReferToUser({ reqUser }: { reqUser: UserDocument }) { const { user } = useContext(UserContext); return <>{user?.id === reqUser.id ? "You have" : `${reqUser.username} has`}; diff --git a/client/src/components/util/UserIcon.tsx b/client/src/components/util/UserIcon.tsx index 3d094b340..68616baa5 100644 --- a/client/src/components/util/UserIcon.tsx +++ b/client/src/components/util/UserIcon.tsx @@ -1,7 +1,7 @@ import ProfilePicture from "components/user/ProfilePicture"; import React from "react"; import { Link } from "react-router-dom"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { JustChildren, GamePT } from "types/react"; export default function UserIcon({ @@ -9,7 +9,7 @@ export default function UserIcon({ children, game, playtype, -}: { user: PublicUserDocument } & Partial & Partial) { +}: { user: UserDocument } & Partial & Partial) { return (
diff --git a/client/src/components/util/modal/UserSelectModal.tsx b/client/src/components/util/modal/UserSelectModal.tsx index a5e2cb2b4..928cd0bc9 100644 --- a/client/src/components/util/modal/UserSelectModal.tsx +++ b/client/src/components/util/modal/UserSelectModal.tsx @@ -2,7 +2,7 @@ import { APIFetchV1 } from "util/api"; import ProfilePicture from "components/user/ProfilePicture"; import React, { useEffect, useState } from "react"; import { Button, Col, Modal, Row } from "react-bootstrap"; -import { integer, PublicUserDocument } from "tachi-common"; +import { integer, UserDocument } from "tachi-common"; import { SetState } from "types/react"; import DebounceSearch from "../DebounceSearch"; import Divider from "../Divider"; @@ -17,13 +17,13 @@ export default function UserSelectModal({ }: { show: boolean; setShow: SetState; - callback: (user: PublicUserDocument) => void; + callback: (user: UserDocument) => void; url?: string; excludeSet?: Array; excludeMsg?: string; }) { const [search, setSearch] = useState(""); - const [users, setUsers] = useState | null>(null); + const [users, setUsers] = useState | null>(null); const [errMsg, setErrMsg] = useState(null); useEffect(() => { @@ -34,7 +34,7 @@ export default function UserSelectModal({ const searchParams = new URLSearchParams(); searchParams.set("search", search); - APIFetchV1(`${url}?${searchParams.toString()}`).then((res) => { + APIFetchV1(`${url}?${searchParams.toString()}`).then((res) => { if (res.success) { setErrMsg(null); diff --git a/client/src/components/util/query/fetchUGPTData.ts b/client/src/components/util/query/fetchUGPTData.ts index 8119d3188..b208da275 100644 --- a/client/src/components/util/query/fetchUGPTData.ts +++ b/client/src/components/util/query/fetchUGPTData.ts @@ -3,7 +3,7 @@ import { FormatGame, Game, Playtype, - PublicUserDocument, + UserDocument, UGPTSettings, UserGameStats, } from "tachi-common"; @@ -19,7 +19,7 @@ export interface UGPTData { stats: UserGameStats; game: Game; playtype: Playtype; - user: PublicUserDocument; + user: UserDocument; } /** @@ -60,7 +60,7 @@ export default async function fetchUGPTData( ); } - const userRes = await APIFetchV1(`/users/${userID}`); + const userRes = await APIFetchV1(`/users/${userID}`); if (!userRes.success) { throw new Error(`Failed to fetch user info for ${userID}: ${userRes.description}`); diff --git a/client/src/components/util/useUGPTBase.tsx b/client/src/components/util/useUGPTBase.tsx index 16c31a49d..cbf806d7e 100644 --- a/client/src/components/util/useUGPTBase.tsx +++ b/client/src/components/util/useUGPTBase.tsx @@ -1,12 +1,12 @@ import { useMemo } from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { GamePT } from "types/react"; export default function useUGPTBase({ reqUser, game, playtype, -}: { reqUser: PublicUserDocument } & GamePT) { +}: { reqUser: UserDocument } & GamePT) { return useMemo( () => `/dashboard/users/${reqUser.username}/games/${game}/${playtype}`, [reqUser, game, playtype] diff --git a/client/src/context/UserContext.tsx b/client/src/context/UserContext.tsx index 6134f93e0..ff73cd1cd 100644 --- a/client/src/context/UserContext.tsx +++ b/client/src/context/UserContext.tsx @@ -1,18 +1,18 @@ import React, { createContext, useState } from "react"; -import { PublicUserDocument } from "tachi-common"; +import { UserDocument } from "tachi-common"; import { JustChildren, SetState } from "types/react"; /** * Contains the current user's user document. */ export const UserContext = createContext<{ - user: PublicUserDocument | null; - setUser: SetState; + user: UserDocument | null; + setUser: SetState; }>({ user: null, setUser: () => void 0 }); UserContext.displayName = "UserContext"; export function UserContextProvider({ children }: JustChildren) { - const [user, setUser] = useState(null); + const [user, setUser] = useState(null); return {children}; } diff --git a/client/src/types/api-returns.ts b/client/src/types/api-returns.ts index ca259b362..1cb169955 100644 --- a/client/src/types/api-returns.ts +++ b/client/src/types/api-returns.ts @@ -15,7 +15,7 @@ import { integer, Lamps, PBScoreDocument, - PublicUserDocument, + UserDocument, ScoreDocument, SessionDocument, ShowcaseStatChart, @@ -44,7 +44,7 @@ export interface UGPTStatsReturn { export interface UGPTLeaderboardAdjacent { above: UserGameStats[]; below: UserGameStats[]; - users: PublicUserDocument[]; + users: UserDocument[]; thisUsersStats: UserGameStats; thisUsersRanking: { ranking: integer; @@ -54,7 +54,7 @@ export interface UGPTLeaderboardAdjacent { export interface GPTLeaderboard { gameStats: UserGameStats[]; - users: PublicUserDocument[]; + users: UserDocument[]; } export type UGPTPreferenceStatsReturn = @@ -79,7 +79,7 @@ export interface SessionReturns { scores: ScoreDocument[]; songs: SongDocument[]; charts: ChartDocument[]; - user: PublicUserDocument; + user: UserDocument; } export interface UGPTChartPBComposition { @@ -137,7 +137,7 @@ export interface GPTStatsReturn { export interface RecentClassesReturn { classes: ClassAchievementDocument[]; - users: PublicUserDocument[]; + users: UserDocument[]; } export interface SongsReturn { @@ -146,26 +146,26 @@ export interface SongsReturn { } export interface ChartPBLeaderboardReturn { - users: PublicUserDocument[]; + users: UserDocument[]; pbs: PBScoreDocument[]; } export interface UGPTChartLeaderboardAdjacent { - users: PublicUserDocument[]; + users: UserDocument[]; pb: PBScoreDocument; adjacentAbove: PBScoreDocument[]; adjacentBelow: PBScoreDocument[]; } export interface ScoreLeaderboardReturns { - users: PublicUserDocument[]; + users: UserDocument[]; songs: SongDocument[]; charts: ChartDocument[]; pbs: PBScoreDocument[]; } export interface UserLeaderboardReturns { - users: PublicUserDocument[]; + users: UserDocument[]; gameStats: UserGameStats[]; } @@ -188,7 +188,7 @@ export interface ServerStatus { } export interface ChallengeSubsReturn { - rivals: Array; + rivals: Array; pbs: Array; challengeSubs: Array; songs: Array; @@ -196,7 +196,7 @@ export interface ChallengeSubsReturn { } export interface ChartRivalsReturn { - rivals: Array; + rivals: Array; pbs: Array; } @@ -206,15 +206,15 @@ export interface ImportIDReturn { charts: ChartDocument[]; sessions: SessionDocument[]; import: ImportDocument; - user: PublicUserDocument; + user: UserDocument; } export interface FailedImportsReturn { failedImports: Array; - users: Array; + users: Array; } export interface ImportsReturn { imports: Array; - users: Array; + users: Array; } diff --git a/client/src/types/tables.ts b/client/src/types/tables.ts index e1bd5fba6..ae10511e2 100644 --- a/client/src/types/tables.ts +++ b/client/src/types/tables.ts @@ -6,7 +6,7 @@ import { ImportTrackerFailed, integer, PBScoreDocument, - PublicUserDocument, + UserDocument, ScoreDocument, SongDocument, UserGameStats, @@ -17,7 +17,7 @@ export type PBDataset = (PBScoreDocument & { chart: ChartDocument; song: SongDocument; index: integer; - user?: PublicUserDocument; + user?: UserDocument; }; __playcount?: integer; })[]; @@ -27,7 +27,7 @@ export type ScoreDataset = (ScoreDocument & chart: ChartDocument; song: SongDocument; index: integer; - user: PublicUserDocument; + user: UserDocument; }; })[]; @@ -35,24 +35,24 @@ export type FolderDataset = (ChartDocument & __related: { pb: PBScoreDocument | null; song: SongDocument; - user: PublicUserDocument; + user: UserDocument; }; })[]; export type ChartLeaderboardDataset = (PBScoreDocument & { __related: { - user: PublicUserDocument; + user: UserDocument; }; })[]; export type UGSDataset = (UserGameStats & { __related: { - user: PublicUserDocument; + user: UserDocument; index: integer; }; })[]; -export type RivalChartDataset = (PublicUserDocument & { +export type RivalChartDataset = (UserDocument & { __related: { pb: PBScoreDocument | null; index: number; @@ -69,7 +69,7 @@ export type ComparePBsDataset = Array<{ export type ImportDataset = Array< ImportDocument & { __related: { - user: PublicUserDocument; + user: UserDocument; }; } >; @@ -77,7 +77,7 @@ export type ImportDataset = Array< export type FailedImportDataset = Array< ImportTrackerFailed & { __related: { - user: PublicUserDocument; + user: UserDocument; }; } >; diff --git a/client/src/util/data.ts b/client/src/util/data.ts index 962201254..b0750236d 100644 --- a/client/src/util/data.ts +++ b/client/src/util/data.ts @@ -4,7 +4,7 @@ import { GoalDocument, IDStrings, integer, - PublicUserDocument, + UserDocument, ScoreDocument, SessionScoreInfo, SongDocument, @@ -24,8 +24,8 @@ export function CreateSongMap(songs: SongDocument[]) { return songMap; } -export function CreateUserMap(users: PublicUserDocument[]) { - const userMap = new Map(); +export function CreateUserMap(users: UserDocument[]) { + const userMap = new Map(); for (const user of users) { userMap.set(user.id, user); diff --git a/common/src/types.ts b/common/src/types.ts index a22754cc2..29deb5271 100644 --- a/common/src/types.ts +++ b/common/src/types.ts @@ -670,7 +670,7 @@ export enum UserAuthLevels { ADMIN = 3, } -export interface PublicUserDocument extends MongoDBDocument { +export interface UserDocument extends MongoDBDocument { username: string; usernameLowercase: string; id: integer; diff --git a/server/src/external/mongo/db.ts b/server/src/external/mongo/db.ts index ea449b1d8..6e3922cb3 100644 --- a/server/src/external/mongo/db.ts +++ b/server/src/external/mongo/db.ts @@ -34,7 +34,7 @@ import type { NotificationDocument, OrphanChart, PBScoreDocument, - PublicUserDocument, + UserDocument, RecentlyViewedFolderDocument, ScoreDocument, SessionDocument, @@ -145,7 +145,7 @@ const db = { "goal-subs": monkDB.get("goal-subs"), quests: monkDB.get("quests"), "quest-subs": monkDB.get("quest-subs"), - users: monkDB.get("users"), + users: monkDB.get("users"), imports: monkDB.get("imports"), "import-timings": monkDB.get("import-timings"), sessions: monkDB.get("sessions"), diff --git a/server/src/lib/invites/invites.ts b/server/src/lib/invites/invites.ts index 6d3e6c85d..de2d1b86f 100644 --- a/server/src/lib/invites/invites.ts +++ b/server/src/lib/invites/invites.ts @@ -1,7 +1,7 @@ import { ONE_MONTH } from "lib/constants/time"; import CreateLogCtx from "lib/logger/logger"; import { ServerConfig } from "lib/setup/config"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; const logger = CreateLogCtx(__filename); @@ -12,7 +12,7 @@ const logger = CreateLogCtx(__filename); * Users get those N additional invites every month since they join. * This is capped at INVITE_CAP, which defaults to 100. */ -export function GetTotalAllowedInvites(user: PublicUserDocument) { +export function GetTotalAllowedInvites(user: UserDocument) { if (!ServerConfig.INVITE_CODE_CONFIG) { logger.warn( `No INVITE_CODE_CONFIG set, but tried to get total allowed invites? Returning 0.` diff --git a/server/src/lib/notifications/notification-wrappers.ts b/server/src/lib/notifications/notification-wrappers.ts index 9ef1d4994..05c3e872d 100644 --- a/server/src/lib/notifications/notification-wrappers.ts +++ b/server/src/lib/notifications/notification-wrappers.ts @@ -1,7 +1,7 @@ import { SendNotification } from "./notifications"; import db from "external/mongo/db"; import { FormatGame } from "tachi-common"; -import type { Game, integer, Playtype, PublicUserDocument } from "tachi-common"; +import type { Game, integer, Playtype, UserDocument } from "tachi-common"; /** * A utility wrapper for sending the RIVALED_BY notification. @@ -13,7 +13,7 @@ import type { Game, integer, Playtype, PublicUserDocument } from "tachi-common"; */ export async function SendSetRivalNotification( toUserID: integer, - fromUser: PublicUserDocument, + fromUser: UserDocument, game: Game, playtype: Playtype ) { diff --git a/server/src/lib/score-import/framework/common/import-logger.ts b/server/src/lib/score-import/framework/common/import-logger.ts index 4f95a38cd..d5db169ef 100644 --- a/server/src/lib/score-import/framework/common/import-logger.ts +++ b/server/src/lib/score-import/framework/common/import-logger.ts @@ -1,10 +1,10 @@ import { rootLogger } from "lib/logger/logger"; import { FormatUserDoc } from "utils/user"; import type { KtLogger } from "lib/logger/logger"; -import type { ImportTypes, PublicUserDocument } from "tachi-common"; +import type { ImportTypes, UserDocument } from "tachi-common"; export function CreateScoreLogger( - user: PublicUserDocument, + user: UserDocument, importID: string, importType: ImportTypes ): KtLogger { diff --git a/server/src/lib/score-import/framework/score-importing/score-import-main.ts b/server/src/lib/score-import/framework/score-importing/score-import-main.ts index 9275e8e96..ac0662984 100644 --- a/server/src/lib/score-import/framework/score-importing/score-import-main.ts +++ b/server/src/lib/score-import/framework/score-importing/score-import-main.ts @@ -26,7 +26,7 @@ import type { ImportTypes, integer, Playtype, - PublicUserDocument, + UserDocument, } from "tachi-common"; /** @@ -257,7 +257,7 @@ export default async function ScoreImportMain( */ export async function HandlePostImportSteps( importInfo: Array, - user: PublicUserDocument, + user: UserDocument, importType: ImportTypes, game: Game, classHandler: ClassHandler | null, diff --git a/server/src/lib/score-import/framework/sessions/sessions.test.ts b/server/src/lib/score-import/framework/sessions/sessions.test.ts index 8d3569f10..d3cba4edb 100644 --- a/server/src/lib/score-import/framework/sessions/sessions.test.ts +++ b/server/src/lib/score-import/framework/sessions/sessions.test.ts @@ -5,10 +5,10 @@ import db from "external/mongo/db"; import t from "tap"; import ResetDBState from "test-utils/resets"; import { TestingIIDXSPScore, TestingIIDXSPScorePB } from "test-utils/test-data"; -import type { PublicUserDocument, ScoreDocument, SessionDocument } from "tachi-common"; +import type { UserDocument, ScoreDocument, SessionDocument } from "tachi-common"; const logger = CreateScoreLogger( - { username: "test_zkldi", id: 1 } as PublicUserDocument, + { username: "test_zkldi", id: 1 } as UserDocument, "foo", "ir/direct-manual" ); diff --git a/server/src/lib/search/search.ts b/server/src/lib/search/search.ts index 52a5d48b7..782b07f56 100644 --- a/server/src/lib/search/search.ts +++ b/server/src/lib/search/search.ts @@ -12,7 +12,7 @@ import type { Game, integer, Playtype, - PublicUserDocument, + UserDocument, SessionDocument, SongDocument, } from "tachi-common"; @@ -134,7 +134,7 @@ export function SearchSessions( export function SearchUsersRegExp(search: string, matchOnline = false) { const regexEsc = EscapeStringRegexp(search.toLowerCase()); - const matchQuery: FilterQuery = { + const matchQuery: FilterQuery = { usernameLowercase: { $regex: new RegExp(regexEsc, "u") }, }; diff --git a/server/src/server/router/api/v1/auth/auth.ts b/server/src/server/router/api/v1/auth/auth.ts index 6de682384..3d8df83e8 100644 --- a/server/src/server/router/api/v1/auth/auth.ts +++ b/server/src/server/router/api/v1/auth/auth.ts @@ -8,7 +8,7 @@ import nodeFetch from "utils/fetch"; import { Random20Hex } from "utils/misc"; import { CreateURLWithParams } from "utils/url"; import { FormatUserDoc } from "utils/user"; -import type { integer, PublicUserDocument, UserSettings } from "tachi-common"; +import type { integer, UserDocument, UserSettings } from "tachi-common"; import type { PrivateUserInfoDocument } from "utils/types"; const logger = CreateLogCtx(__filename); @@ -43,7 +43,7 @@ export function ReinstateInvite(code: string) { ); } -export async function AddNewInvite(user: PublicUserDocument) { +export async function AddNewInvite(user: UserDocument) { const code = Random20Hex(); const result = await db.invites.insert({ @@ -82,7 +82,7 @@ export async function AddNewUser( logger.verbose(`Hashed password for ${username}.`); - const userDoc: PublicUserDocument = { + const userDoc: UserDocument = { id: userID, username, usernameLowercase: username.toLowerCase(), @@ -169,7 +169,7 @@ export async function ValidateCaptcha( export function MountAuthCookie( req: Express.Request, - user: PublicUserDocument, + user: UserDocument, settings: UserSettings ) { req.session.tachi = { diff --git a/server/src/server/router/api/v1/games/_game/_playtype/charts/_chartID/router.test.ts b/server/src/server/router/api/v1/games/_game/_playtype/charts/_chartID/router.test.ts index d332cddc9..8ae9458ae 100644 --- a/server/src/server/router/api/v1/games/_game/_playtype/charts/_chartID/router.test.ts +++ b/server/src/server/router/api/v1/games/_game/_playtype/charts/_chartID/router.test.ts @@ -4,7 +4,7 @@ import t from "tap"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; import { Testing511SPA, TestingIIDXSPScorePB } from "test-utils/test-data"; -import type { PBScoreDocument, PublicUserDocument } from "tachi-common"; +import type { PBScoreDocument, UserDocument } from "tachi-common"; t.test("GET /api/v1/games/:game/:playtype/charts/:chartID", (t) => { t.beforeEach(ResetDBState); @@ -54,7 +54,7 @@ t.test("GET /api/v1/games/:game/:playtype/charts/:chartID/pbs", (t) => { id: 2, username: "foo", usernameLowercase: "foo", - } as PublicUserDocument); + } as UserDocument); const res = await mockApi.get(`/api/v1/games/iidx/SP/charts/${Testing511SPA.chartID}/pbs`); diff --git a/server/src/server/router/api/v1/games/_game/_playtype/router.test.ts b/server/src/server/router/api/v1/games/_game/_playtype/router.test.ts index 83f90635c..ccbb69954 100644 --- a/server/src/server/router/api/v1/games/_game/_playtype/router.test.ts +++ b/server/src/server/router/api/v1/games/_game/_playtype/router.test.ts @@ -6,7 +6,7 @@ import { mkFakeGameStats, mkFakeUser } from "test-utils/misc"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; import { FakeOtherUser } from "test-utils/test-data"; -import type { PublicUserDocument, UserGameStats } from "tachi-common"; +import type { UserDocument, UserGameStats } from "tachi-common"; t.test("GET /api/v1/games/:game/:playtype", (t) => { t.test("Should return information about the game:playtype.", async (t) => { @@ -95,7 +95,7 @@ t.test("GET /api/v1/games/:game/:playtype/leaderboard", (t) => { username: "foo", usernameLowercase: "foo", id: 3, - }) as PublicUserDocument, + }) as UserDocument, ]); const res = await mockApi.get("/api/v1/games/iidx/SP/leaderboard?alg=BPI"); diff --git a/server/src/server/router/api/v1/search/router.ts b/server/src/server/router/api/v1/search/router.ts index 969e014b6..ef42af95b 100644 --- a/server/src/server/router/api/v1/search/router.ts +++ b/server/src/server/router/api/v1/search/router.ts @@ -11,7 +11,7 @@ import { RequireBokutachi } from "server/middleware/type-require"; import { IsString } from "utils/misc"; import { GetAllUserRivals, GetUserPlayedGPTs } from "utils/user"; import type { FilterQuery } from "mongodb"; -import type { FolderDocument, Game, integer, PublicUserDocument, SongDocument } from "tachi-common"; +import type { FolderDocument, Game, integer, UserDocument, SongDocument } from "tachi-common"; const router: Router = Router({ mergeParams: true }); @@ -32,7 +32,7 @@ router.get("/", async (req, res) => { const userID = req[SYMBOL_TACHI_API_AUTH].userID; - let filter: FilterQuery = {}; + let filter: FilterQuery = {}; let relevantGames: Array = TachiConfig.GAMES; if (userID !== null) { @@ -64,7 +64,7 @@ router.get("/", async (req, res) => { ); // @ts-expect-error Handled below -- the field is added by the below for loop. - const usersWithRivalTag: Array = users; + const usersWithRivalTag: Array = users; let rivals: Array = []; diff --git a/server/src/server/router/api/v1/users/_userID/api-tokens/router.test.ts b/server/src/server/router/api/v1/users/_userID/api-tokens/router.test.ts index 41561b56d..e0506c3b6 100644 --- a/server/src/server/router/api/v1/users/_userID/api-tokens/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/api-tokens/router.test.ts @@ -3,7 +3,7 @@ import t from "tap"; import { CreateFakeAuthCookie } from "test-utils/fake-auth"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("GET /api/v1/users/:userID/api-tokens", async (t) => { t.beforeEach(ResetDBState); @@ -75,7 +75,7 @@ t.test("GET /api/v1/users/:userID/api-tokens", async (t) => { username: "test", usernameLowercase: "test", id: 2, - } as PublicUserDocument); + } as UserDocument); const res2 = await mockApi.get("/api/v1/users/2/api-tokens").set("Cookie", cookie); diff --git a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/rivals/router.test.ts b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/rivals/router.test.ts index f9adbbb09..a285a23a9 100644 --- a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/rivals/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/rivals/router.test.ts @@ -5,7 +5,7 @@ import { mkFakeGameSettings, mkFakeUser } from "test-utils/misc"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; import { FakeOtherUser } from "test-utils/test-data"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; const SetupRivals = async () => { await db.users.insert([FakeOtherUser, mkFakeUser(3), mkFakeUser(4)]); @@ -36,7 +36,7 @@ t.test("GET /api/v1/users/:userID/games/:game/:playtype/rivals", (t) => { t.equal(res.statusCode, 200); t.strictSame( - res.body.body.map((e: PublicUserDocument) => e.id), + res.body.body.map((e: UserDocument) => e.id), [2, 3], "Should have the users rivals and no more." ); @@ -178,7 +178,7 @@ t.test("GET /api/v1/users/:userID/games/:game/:playtype/rivals/challengers", (t) t.equal(res.statusCode, 200); t.hasStrict( - res.body.body.map((e: PublicUserDocument) => e.id), + res.body.body.map((e: UserDocument) => e.id), [3, 4, 5] ); diff --git a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/showcase/router.test.ts b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/showcase/router.test.ts index aa36692e7..d49ac45f0 100644 --- a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/showcase/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/showcase/router.test.ts @@ -6,7 +6,7 @@ import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; import { Testing511SPA, TestingIIDXFolderSP10, TestingIIDXSPScorePB } from "test-utils/test-data"; import { CreateFolderChartLookup } from "utils/folder"; -import type { ChartDocument, PublicUserDocument } from "tachi-common"; +import type { ChartDocument, UserDocument } from "tachi-common"; const SetFolders = async () => { await db.folders.insert(TestingIIDXFolderSP10); @@ -112,7 +112,7 @@ t.test("GET /api/v1/users/:userID/games/:game/:playtype/showcase", (t) => { username: "test_acc", usernameLowercase: "test_acc", id: 2, - } as PublicUserDocument); + } as UserDocument); const res = await mockApi.get("/api/v1/users/1/games/iidx/SP/showcase?projectUser=2"); diff --git a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/targets/quests/router.test.ts b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/targets/quests/router.test.ts index 0c6834a41..7f5b6878c 100644 --- a/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/targets/quests/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/games/_game/_playtype/targets/quests/router.test.ts @@ -9,7 +9,7 @@ import { TestingIIDXSPQuest, TestingIIDXSPQuestSub, } from "test-utils/test-data"; -import type { PublicUserDocument, UserGameStats } from "tachi-common"; +import type { UserDocument, UserGameStats } from "tachi-common"; t.test("GET /api/v1/users/:userID/games/:game/:playtype/targets/quests", (t) => { t.beforeEach(ResetDBState); @@ -158,7 +158,7 @@ t.test("PUT /api/v1/users/:userID/games/:game/:playtype/targets/quests/:questID" id: 2, username: "fake_person", usernameLowercase: "fake_person", - } as PublicUserDocument); + } as UserDocument); await db["game-stats"].insert({ game: "iidx", @@ -206,7 +206,7 @@ t.test("DELETE /api/v1/users/:userID/games/:game/:playtype/targets/quests/:quest id: 2, username: "fake_person", usernameLowercase: "fake_person", - } as PublicUserDocument); + } as UserDocument); await db["game-stats"].insert({ game: "iidx", diff --git a/server/src/server/router/api/v1/users/_userID/integrations/fervidex/router.test.ts b/server/src/server/router/api/v1/users/_userID/integrations/fervidex/router.test.ts index 6b97b54fa..05af0120f 100644 --- a/server/src/server/router/api/v1/users/_userID/integrations/fervidex/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/integrations/fervidex/router.test.ts @@ -3,7 +3,7 @@ import t from "tap"; import { CreateFakeAuthCookie } from "test-utils/fake-auth"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("GET /api/v1/users/:userID/integrations/fervidex/settings", async (t) => { t.beforeEach(ResetDBState); @@ -58,7 +58,7 @@ t.test("GET /api/v1/users/:userID/integrations/fervidex/settings", async (t) => id: 2, username: "foo", usernameLowercase: "foo", - } as PublicUserDocument); + } as UserDocument); const res3 = await mockApi .get("/api/v1/users/2/integrations/fervidex/settings") diff --git a/server/src/server/router/api/v1/users/_userID/integrations/kshook-sv6c/router.test.ts b/server/src/server/router/api/v1/users/_userID/integrations/kshook-sv6c/router.test.ts index 89b57c77e..ad90bbe21 100644 --- a/server/src/server/router/api/v1/users/_userID/integrations/kshook-sv6c/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/integrations/kshook-sv6c/router.test.ts @@ -3,7 +3,7 @@ import t from "tap"; import { CreateFakeAuthCookie } from "test-utils/fake-auth"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("GET /api/v1/users/:userID/integrations/kshook-sv6c/settings", async (t) => { t.beforeEach(ResetDBState); @@ -55,7 +55,7 @@ t.test("GET /api/v1/users/:userID/integrations/kshook-sv6c/settings", async (t) id: 2, username: "foo", usernameLowercase: "foo", - } as PublicUserDocument); + } as UserDocument); const res3 = await mockApi .get("/api/v1/users/2/integrations/kshook-sv6c/settings") diff --git a/server/src/server/router/api/v1/users/_userID/invites/router.test.ts b/server/src/server/router/api/v1/users/_userID/invites/router.test.ts index 5230ba9b0..6ca764ed3 100644 --- a/server/src/server/router/api/v1/users/_userID/invites/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/invites/router.test.ts @@ -5,7 +5,7 @@ import t from "tap"; import { CreateFakeAuthCookie } from "test-utils/fake-auth"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { InviteCodeDocument, PublicUserDocument } from "tachi-common"; +import type { InviteCodeDocument, UserDocument } from "tachi-common"; t.test("GET /api/v1/users/:userID/invites", async (t) => { t.beforeEach(ResetDBState); @@ -17,7 +17,7 @@ t.test("GET /api/v1/users/:userID/invites", async (t) => { id: 2, username: "other_dude", usernameLowercase: "other_dude", - } as PublicUserDocument); + } as UserDocument); const res = await mockApi.get("/api/v1/users/1/invites").set("Cookie", cookie); diff --git a/server/src/server/router/api/v1/users/_userID/settings/router.test.ts b/server/src/server/router/api/v1/users/_userID/settings/router.test.ts index 35ff16371..a256fe320 100644 --- a/server/src/server/router/api/v1/users/_userID/settings/router.test.ts +++ b/server/src/server/router/api/v1/users/_userID/settings/router.test.ts @@ -4,7 +4,7 @@ import t from "tap"; import { CreateFakeAuthCookie } from "test-utils/fake-auth"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("GET /api/v1/users/:userID/settings", (t) => { t.beforeEach(ResetDBState); @@ -125,7 +125,7 @@ t.test("PATCH /api/v1/users/:userID/settings", async (t) => { id: 2, username: "something_else", usernameLowercase: "something_else", - }) as PublicUserDocument + }) as UserDocument ); const res = await mockApi diff --git a/server/src/server/router/api/v1/users/router.test.ts b/server/src/server/router/api/v1/users/router.test.ts index add146e58..a12807490 100644 --- a/server/src/server/router/api/v1/users/router.test.ts +++ b/server/src/server/router/api/v1/users/router.test.ts @@ -2,7 +2,7 @@ import db from "external/mongo/db"; import t from "tap"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("GET /api/v1/users", (t) => { t.beforeEach(ResetDBState); @@ -43,7 +43,7 @@ t.test("GET /api/v1/users", (t) => { usernameLowercase: "online_dude", lastSeen: Date.now(), id: 2, - } as PublicUserDocument); + } as UserDocument); const res2 = await mockApi.get("/api/v1/users?online=true"); @@ -59,13 +59,13 @@ t.test("GET /api/v1/users", (t) => { usernameLowercase: "online_dude", lastSeen: Date.now(), id: 2, - } as PublicUserDocument); + } as UserDocument); const res = await mockApi.get("/api/v1/users"); t.equal(res.body.body.length, 2); t.strictSame( - res.body.body.map((e: PublicUserDocument) => e.usernameLowercase), + res.body.body.map((e: UserDocument) => e.usernameLowercase), ["online_dude", "test_zkldi"] ); diff --git a/server/src/server/router/ir/beatoraja/charts/_chartSHA256/router.ts b/server/src/server/router/ir/beatoraja/charts/_chartSHA256/router.ts index 7b06d29e4..00ff0f459 100644 --- a/server/src/server/router/ir/beatoraja/charts/_chartSHA256/router.ts +++ b/server/src/server/router/ir/beatoraja/charts/_chartSHA256/router.ts @@ -5,7 +5,7 @@ import { SYMBOL_TACHI_API_AUTH } from "lib/constants/tachi"; import CreateLogCtx from "lib/logger/logger"; import { AssignToReqTachiData, GetTachiData } from "utils/req-tachi-data"; import type { RequestHandler } from "express"; -import type { ChartDocument, integer, PBScoreDocument, PublicUserDocument } from "tachi-common"; +import type { ChartDocument, integer, PBScoreDocument, UserDocument } from "tachi-common"; const router: Router = Router({ mergeParams: true }); @@ -64,7 +64,7 @@ router.get("/scores", async (req, res) => { }, } ); - const userMap = new Map(); + const userMap = new Map(); for (const user of userDocs) { userMap.set(user.id, user); diff --git a/server/src/server/router/ir/beatoraja/router.test.ts b/server/src/server/router/ir/beatoraja/router.test.ts index 9f2932f28..44cfe1e43 100644 --- a/server/src/server/router/ir/beatoraja/router.test.ts +++ b/server/src/server/router/ir/beatoraja/router.test.ts @@ -4,7 +4,7 @@ import t from "tap"; import mockApi from "test-utils/mock-api"; import ResetDBState from "test-utils/resets"; import { MockBeatorajaBMSScore, MockBeatorajaPMSScore } from "test-utils/test-data"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("POST /ir/beatoraja/submit-score", (t) => { t.beforeEach(ResetDBState); @@ -272,7 +272,7 @@ t.test("POST /ir/beatoraja/submit-score", (t) => { username: "bar", usernameLowercase: "bar", }, - ] as Array); + ] as Array); const res = await mockApi .post("/ir/beatoraja/submit-score") diff --git a/server/src/server/router/ir/usc/_playtype/router.test.ts b/server/src/server/router/ir/usc/_playtype/router.test.ts index ae6e529a8..9eedddf72 100644 --- a/server/src/server/router/ir/usc/_playtype/router.test.ts +++ b/server/src/server/router/ir/usc/_playtype/router.test.ts @@ -5,7 +5,7 @@ import t from "tap"; import mockApi from "test-utils/mock-api"; import ResetDBState, { ResetCDN } from "test-utils/resets"; import { GetKTDataBuffer } from "test-utils/test-data"; -import type { PBScoreDocument, PublicUserDocument, ScoreDocument } from "tachi-common"; +import type { PBScoreDocument, UserDocument, ScoreDocument } from "tachi-common"; async function InsertFakeUSCAuth() { await db["api-tokens"].insert({ @@ -315,7 +315,7 @@ t.test("GET /charts/:chartHash/leaderboard", (t) => { id: 2, username: "not_zkldi", usernameLowercase: "not_zkldi", - } as PublicUserDocument); + } as UserDocument); await db.scores.insert([ { @@ -667,7 +667,7 @@ t.test("POST /scores", (t) => { username: "bar", usernameLowercase: "bar", }, - ] as Array); + ] as Array); const res = await mockApi .post("/ir/usc/Controller/scores") @@ -781,7 +781,7 @@ t.test("POST /scores", (t) => { username: "baz", usernameLowercase: "baz", }, - ] as Array); + ] as Array); const res = await mockApi .post("/ir/usc/Controller/scores") diff --git a/server/src/server/router/ir/usc/_playtype/usc.test.ts b/server/src/server/router/ir/usc/_playtype/usc.test.ts index 970b9764b..be6251073 100644 --- a/server/src/server/router/ir/usc/_playtype/usc.test.ts +++ b/server/src/server/router/ir/usc/_playtype/usc.test.ts @@ -6,7 +6,7 @@ import ResetDBState from "test-utils/resets"; import type { ChartDocument, PBScoreDocument, - PublicUserDocument, + UserDocument, ScoreDocument, } from "tachi-common"; @@ -241,7 +241,7 @@ const mockUserDocs = [2, 3, 4, 5, 6, 7, 8, 9, 10].map((e) => ({ id: e, username: e.toString(), usernameLowercase: e.toString(), -})) as Array; +})) as Array; t.test("#CreatePOSTScoresResponseBody", async (t) => { t.beforeEach(ResetDBState); diff --git a/server/src/test-utils/misc.ts b/server/src/test-utils/misc.ts index 8b48ef5ed..b8e145414 100644 --- a/server/src/test-utils/misc.ts +++ b/server/src/test-utils/misc.ts @@ -23,7 +23,7 @@ import type { NotificationDocument, PBScoreDocument, Playtype, - PublicUserDocument, + UserDocument, ScoreDocument, UGPTSettings, UserGameStats, @@ -58,7 +58,7 @@ export function dmf(base: T, modifant: Partial): T { * * @param userID - The userID this fake user should have. */ -export function mkFakeUser(userID: integer, modifant: Partial = {}) { +export function mkFakeUser(userID: integer, modifant: Partial = {}) { return dmf(FakeOtherUser, { id: userID, username: `user${userID}`, diff --git a/server/src/test-utils/test-data.ts b/server/src/test-utils/test-data.ts index 0976d675e..38de73d27 100644 --- a/server/src/test-utils/test-data.ts +++ b/server/src/test-utils/test-data.ts @@ -31,7 +31,7 @@ import type { QuestSubscriptionDocument, NotificationDocument, PBScoreDocument, - PublicUserDocument, + UserDocument, ScoreDocument, SongDocument, UGPTSettings, @@ -798,7 +798,7 @@ export const uscScore: USCClientScore = { }, }; -export const FakeOtherUser: PublicUserDocument = { +export const FakeOtherUser: UserDocument = { id: 2, username: "other_user", about: "", diff --git a/server/src/utils/calculations/recalc-scores.ts b/server/src/utils/calculations/recalc-scores.ts index 760f1de47..9378e2604 100644 --- a/server/src/utils/calculations/recalc-scores.ts +++ b/server/src/utils/calculations/recalc-scores.ts @@ -11,7 +11,7 @@ import { TachiConfig } from "lib/setup/config"; import { GetGameConfig } from "tachi-common"; import { EfficientDBIterate } from "utils/efficient-db-iterate"; import { FormatUserDoc } from "utils/user"; -import type { Game, integer, Playtype, PublicUserDocument } from "tachi-common"; +import type { Game, integer, Playtype, UserDocument } from "tachi-common"; const logger = CreateLogCtx(__filename); @@ -84,7 +84,7 @@ export async function RecalcAllScores(filter = {}) { } export async function UpdateAllPBs(userIDs?: Array, filter = {}) { - let allUsers: Array; + let allUsers: Array; if (!userIDs) { allUsers = await db.users.find({}); diff --git a/server/src/utils/types.ts b/server/src/utils/types.ts index 727632216..73bc830b0 100644 --- a/server/src/utils/types.ts +++ b/server/src/utils/types.ts @@ -4,7 +4,7 @@ import type { SessionDocument, ScoreDocument, ChartDocument, - PublicUserDocument, + UserDocument, UserGameStats, Game, Playtype, @@ -41,7 +41,7 @@ declare module "express-serve-static-core" { } export interface TachiSessionData { - user: PublicUserDocument; + user: UserDocument; settings: UserSettings; } @@ -71,7 +71,7 @@ export interface TachiRequestData { beatorajaChartDoc?: ChartDocument<"bms:7K" | "bms:14K" | "pms:Controller" | "pms:Keyboard">; - requestedUser?: PublicUserDocument; + requestedUser?: UserDocument; requestedUserGameStats?: UserGameStats; game?: Game; playtype?: Playtype; diff --git a/server/src/utils/user.test.ts b/server/src/utils/user.test.ts index 9d9921680..1f0fe8533 100644 --- a/server/src/utils/user.test.ts +++ b/server/src/utils/user.test.ts @@ -4,7 +4,7 @@ import { DatabaseSchemas } from "external/mongo/schemas"; import t from "tap"; import { mkFakeUser } from "test-utils/misc"; import ResetDBState from "test-utils/resets"; -import type { PublicUserDocument } from "tachi-common"; +import type { UserDocument } from "tachi-common"; t.test("#GetUserCaseInsensitive", (t) => { t.beforeEach(ResetDBState); @@ -100,7 +100,7 @@ t.test("#GetUsersWithIDs", (t) => { t.test("#FormatUserDoc", (t) => { t.equal( - FormatUserDoc({ username: "zkldi", id: 123 } as PublicUserDocument), + FormatUserDoc({ username: "zkldi", id: 123 } as UserDocument), "zkldi (#123)", "Should format a user document into username #id format." ); diff --git a/server/src/utils/user.ts b/server/src/utils/user.ts index ff5ddf8a9..fcb143fd3 100644 --- a/server/src/utils/user.ts +++ b/server/src/utils/user.ts @@ -9,7 +9,7 @@ import type { IDStrings, integer, Playtype, - PublicUserDocument, + UserDocument, UGSRatingsLookup, UserGameStats, } from "tachi-common"; @@ -43,7 +43,7 @@ export async function GetUsernameFromUserID(userID: integer): Promise { */ export function GetUserCaseInsensitive( username: string -): Promise> { +): Promise> { return db.users.findOne({ usernameLowercase: username.toLowerCase(), }); @@ -62,7 +62,7 @@ export function GetUserPrivateInfo(userID: integer) { /** * Gets a user from their userID. */ -export function GetUserWithID(userID: integer): Promise> { +export function GetUserWithID(userID: integer): Promise> { return db.users.findOne({ id: userID, }); @@ -102,7 +102,7 @@ export async function GetUsersWithIDs(userIDs: Array) { * If the user document is not found, a severe error is logged, and this * function throws. */ -export async function GetUserWithIDGuaranteed(userID: integer): Promise { +export async function GetUserWithIDGuaranteed(userID: integer): Promise { const userDoc = await GetUserWithID(userID); if (!userDoc) { @@ -135,7 +135,7 @@ export function ResolveUser(usernameOrID: string) { /** * Returns a formatted string indicating the user. This is used for logging. */ -export function FormatUserDoc(userdoc: PublicUserDocument) { +export function FormatUserDoc(userdoc: UserDocument) { return `${userdoc.username} (#${userdoc.id})`; }