From 9f13586e3064bc6686e5c252ca9e751cfaddd38c Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 14 Aug 2022 12:22:04 +0300 Subject: [PATCH] Badge db queries to sql files --- app/db/models/badges/countsByUserId.sql | 14 +++ app/db/models/badges/createManager.sql | 4 + app/db/models/badges/createOwner.sql | 4 + app/db/models/badges/deleteManyManagers.sql | 4 + app/db/models/badges/deleteManyOwners.sql | 4 + app/db/models/badges/findAll.sql | 7 ++ app/db/models/badges/managersByBadgeId.sql | 10 ++ app/db/models/badges/managersByUserId.sql | 10 ++ app/db/models/badges/ownersByBadgeId.sql | 16 +++ app/db/models/badges/queries.server.ts | 120 ++++---------------- app/routes/badges.tsx | 4 +- 11 files changed, 97 insertions(+), 100 deletions(-) create mode 100644 app/db/models/badges/countsByUserId.sql create mode 100644 app/db/models/badges/createManager.sql create mode 100644 app/db/models/badges/createOwner.sql create mode 100644 app/db/models/badges/deleteManyManagers.sql create mode 100644 app/db/models/badges/deleteManyOwners.sql create mode 100644 app/db/models/badges/findAll.sql create mode 100644 app/db/models/badges/managersByBadgeId.sql create mode 100644 app/db/models/badges/managersByUserId.sql create mode 100644 app/db/models/badges/ownersByBadgeId.sql diff --git a/app/db/models/badges/countsByUserId.sql b/app/db/models/badges/countsByUserId.sql new file mode 100644 index 000000000..9d6f1a518 --- /dev/null +++ b/app/db/models/badges/countsByUserId.sql @@ -0,0 +1,14 @@ +select + "Badge"."code", + "Badge"."displayName", + "Badge"."id", + "Badge"."hue", + count("BadgeOwner"."badgeId") as count +from + "BadgeOwner" + join "Badge" on "Badge"."id" = "BadgeOwner"."badgeId" +where + "BadgeOwner"."userId" = @userId +group by + "BadgeOwner"."badgeId", + "BadgeOwner"."userId" \ No newline at end of file diff --git a/app/db/models/badges/createManager.sql b/app/db/models/badges/createManager.sql new file mode 100644 index 000000000..861ba504c --- /dev/null +++ b/app/db/models/badges/createManager.sql @@ -0,0 +1,4 @@ +insert into + "BadgeManager" ("badgeId", "userId") +values + (@badgeId, @userId) \ No newline at end of file diff --git a/app/db/models/badges/createOwner.sql b/app/db/models/badges/createOwner.sql new file mode 100644 index 000000000..3904fb130 --- /dev/null +++ b/app/db/models/badges/createOwner.sql @@ -0,0 +1,4 @@ +insert into + "TournamentBadgeOwner" ("badgeId", "userId") +values + (@badgeId, @userId) \ No newline at end of file diff --git a/app/db/models/badges/deleteManyManagers.sql b/app/db/models/badges/deleteManyManagers.sql new file mode 100644 index 000000000..28d1a77a3 --- /dev/null +++ b/app/db/models/badges/deleteManyManagers.sql @@ -0,0 +1,4 @@ +delete from + "BadgeManager" +where + "badgeId" = @badgeId \ No newline at end of file diff --git a/app/db/models/badges/deleteManyOwners.sql b/app/db/models/badges/deleteManyOwners.sql new file mode 100644 index 000000000..16091ca65 --- /dev/null +++ b/app/db/models/badges/deleteManyOwners.sql @@ -0,0 +1,4 @@ +delete from + "TournamentBadgeOwner" +where + "badgeId" = @badgeId \ No newline at end of file diff --git a/app/db/models/badges/findAll.sql b/app/db/models/badges/findAll.sql new file mode 100644 index 000000000..b6ad1bc11 --- /dev/null +++ b/app/db/models/badges/findAll.sql @@ -0,0 +1,7 @@ +select + "Badge"."id", + "Badge"."code", + "Badge"."displayName", + "Badge"."hue" +from + "Badge" \ No newline at end of file diff --git a/app/db/models/badges/managersByBadgeId.sql b/app/db/models/badges/managersByBadgeId.sql new file mode 100644 index 000000000..800ea45d9 --- /dev/null +++ b/app/db/models/badges/managersByBadgeId.sql @@ -0,0 +1,10 @@ +select + "User"."id", + "User"."discordId", + "User"."discordName", + "User"."discordDiscriminator" +from + "BadgeManager" + join "User" on "User"."id" = "BadgeManager"."userId" +where + "BadgeManager"."badgeId" = @id \ No newline at end of file diff --git a/app/db/models/badges/managersByUserId.sql b/app/db/models/badges/managersByUserId.sql new file mode 100644 index 000000000..1f73530ec --- /dev/null +++ b/app/db/models/badges/managersByUserId.sql @@ -0,0 +1,10 @@ +select + "Badge"."id", + "Badge"."code", + "Badge"."displayName", + "Badge"."hue" +from + "BadgeManager" + join "Badge" on "Badge"."id" = "BadgeManager"."badgeId" +where + "userId" = @userId \ No newline at end of file diff --git a/app/db/models/badges/ownersByBadgeId.sql b/app/db/models/badges/ownersByBadgeId.sql new file mode 100644 index 000000000..61335c0a6 --- /dev/null +++ b/app/db/models/badges/ownersByBadgeId.sql @@ -0,0 +1,16 @@ +select + count("BadgeOwner"."badgeId") as count, + "User"."id", + "User"."discordId", + "User"."discordName", + "User"."discordDiscriminator" +from + "BadgeOwner" + join "User" on "User"."id" = "BadgeOwner"."userId" +where + "BadgeOwner"."badgeId" = @id +group by + "User"."id" +order by + count desc, + "User"."discordName" collate nocase asc \ No newline at end of file diff --git a/app/db/models/badges/queries.server.ts b/app/db/models/badges/queries.server.ts index a440ff294..951f6d924 100644 --- a/app/db/models/badges/queries.server.ts +++ b/app/db/models/badges/queries.server.ts @@ -1,26 +1,18 @@ import { sql } from "../../sql"; import type { Badge, User } from "../../types"; -const deleteManyManagersStm = sql.prepare(` - DELETE FROM - "BadgeManager" - WHERE - "badgeId" = $badgeId -`); - -const createManagerStm = sql.prepare(` - INSERT INTO - "BadgeManager" ( - "badgeId", - "userId" - ) - VALUES - ( - $badgeId, - $userId - ) -`); +import deleteManyManagersSql from "./deleteManyManagers.sql"; +import createManagerSql from "./createManager.sql"; +import deleteManyOwnersSql from "./deleteManyOwners.sql"; +import createOwnerSql from "./createOwner.sql"; +import countsByUserIdSql from "./countsByUserId.sql"; +import findAllSql from "./findAll.sql"; +import ownersByBadgeIdSql from "./ownersByBadgeId.sql"; +import managersByBadgeIdSql from "./managersByBadgeId.sql"; +import managersByUserIdSql from "./managersByUserId.sql"; +const deleteManyManagersStm = sql.prepare(deleteManyManagersSql); +const createManagerStm = sql.prepare(createManagerSql); export const upsertManyManagers = sql.transaction( ({ badgeId, @@ -42,26 +34,8 @@ export const upsertManyManagers = sql.transaction( } ); -const deleteManyOwnersStm = sql.prepare(` - DELETE FROM - "TournamentBadgeOwner" - WHERE - "badgeId" = $badgeId -`); - -const createOwnerStm = sql.prepare(` - INSERT INTO - "TournamentBadgeOwner" ( - "badgeId", - "userId" - ) - VALUES - ( - $badgeId, - $userId - ) -`); - +const deleteManyOwnersStm = sql.prepare(deleteManyOwnersSql); +const createOwnerStm = sql.prepare(createOwnerSql); export const upsertManyOwners = sql.transaction( ({ badgeId, @@ -83,18 +57,7 @@ export const upsertManyOwners = sql.transaction( } ); -const countsByUserIdStm = sql.prepare(` - select - "Badge"."code", - "Badge"."displayName", - "Badge"."id", - "Badge"."hue", - count("BadgeOwner"."badgeId") as count - from "BadgeOwner" - join "Badge" on "Badge"."id" = "BadgeOwner"."badgeId" - where "BadgeOwner"."userId" = $userId - group by "BadgeOwner"."badgeId", "BadgeOwner"."userId" - `); +const countsByUserIdStm = sql.prepare(countsByUserIdSql); export type CountsByUserId = Array< Pick & { @@ -106,19 +69,12 @@ export function countsByUserId(userId: User["id"]) { return countsByUserIdStm.all({ userId }) as CountsByUserId; } -const allStm = sql.prepare(` - select - "Badge"."id", - "Badge"."code", - "Badge"."displayName", - "Badge"."hue" - from "Badge" -`); +const findAllStm = sql.prepare(findAllSql); -export type All = Array>; +export type FindAll = Array>; export function all() { - return allStm.all() as All; + return findAllStm.all() as FindAll; } export type OwnersByBadgeId = Array< @@ -127,20 +83,7 @@ export type OwnersByBadgeId = Array< } >; -const ownersByBadgeIdStm = sql.prepare(` - select - count("BadgeOwner"."badgeId") as count, - "User"."id", - "User"."discordId", - "User"."discordName", - "User"."discordDiscriminator" - from "BadgeOwner" - join "User" on "User"."id" = "BadgeOwner"."userId" - where "BadgeOwner"."badgeId" = $id - group by "User"."id" - order by count desc, "User"."discordName" collate nocase asc -`); - +const ownersByBadgeIdStm = sql.prepare(ownersByBadgeIdSql); export function ownersByBadgeId(id: Badge["id"]) { return ownersByBadgeIdStm.all({ id }) as OwnersByBadgeId; } @@ -149,34 +92,15 @@ export type ManagersByBadgeId = Array< Pick >; -const managersByBadgeIdStm = sql.prepare(` - select - "User"."id", - "User"."discordId", - "User"."discordName", - "User"."discordDiscriminator" - from "BadgeManager" - join "User" on "User"."id" = "BadgeManager"."userId" - where "BadgeManager"."badgeId" = $id -`); - +const managersByBadgeIdStm = sql.prepare(managersByBadgeIdSql); export function managersByBadgeId(id: Badge["id"]) { return managersByBadgeIdStm.all({ id }) as ManagersByBadgeId; } -const managedByUserIdStm = sql.prepare(` - select - "Badge"."id", - "Badge"."code", - "Badge"."displayName", - "Badge"."hue" - from "BadgeManager" - join "Badge" on "Badge"."id" = "BadgeManager"."badgeId" - where "userId" = $userId -`); +const managersByUserIdStm = sql.prepare(managersByUserIdSql); -export function managedByUserId(userId: User["id"]) { - return managedByUserIdStm.all({ userId }) as Array< +export function managersByUserId(userId: User["id"]) { + return managersByUserIdStm.all({ userId }) as Array< Pick >; } diff --git a/app/routes/badges.tsx b/app/routes/badges.tsx index 080aec1f6..42bd6307c 100644 --- a/app/routes/badges.tsx +++ b/app/routes/badges.tsx @@ -4,7 +4,7 @@ import { Link, NavLink, Outlet, useLoaderData } from "@remix-run/react"; import { Badge } from "~/components/Badge"; import { Main } from "~/components/Main"; import { db } from "~/db"; -import type { All } from "~/db/models/badges/queries.server"; +import type { FindAll } from "~/db/models/badges/queries.server"; import styles from "~/styles/badges.css"; import { BORZOIC_TWITTER, FAQ_PAGE } from "~/utils/urls"; import { Trans, useTranslation } from "react-i18next"; @@ -15,7 +15,7 @@ export const links: LinksFunction = () => { }; export interface BadgesLoaderData { - badges: All; + badges: FindAll; } export const handle = {