From 38c8ea24a930d434680910965d3c423bc55d6ed9 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Sat, 29 Jun 2024 21:08:03 -1000 Subject: [PATCH] refactor(federation): :fire: Remove some old SQL queries for Instances --- packages/database-interface/instance.ts | 15 +++++++++++++++ server/api/api/v1/instance/index.ts | 14 ++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/packages/database-interface/instance.ts b/packages/database-interface/instance.ts index 210d1697..36670e6d 100644 --- a/packages/database-interface/instance.ts +++ b/packages/database-interface/instance.ts @@ -7,6 +7,7 @@ import { type InferInsertModel, type InferSelectModel, type SQL, + count, desc, eq, inArray, @@ -234,6 +235,10 @@ export class Instance extends BaseInterface { name: metadata.metadata.nodeName || metadata.metadata.title || "", version: metadata.software.version, + description: + metadata.metadata.nodeDescription || + metadata.metadata.description || + "", logo: undefined, type: "ServerMetadata", supported_extensions: [], @@ -275,4 +280,14 @@ export class Instance extends BaseInterface { protocol: protocol, }); } + + static async getCount() { + return ( + await db + .select({ + count: count(), + }) + .from(Instances) + )[0].count; + } } diff --git a/server/api/api/v1/instance/index.ts b/server/api/api/v1/instance/index.ts index a03e3dbf..5b381383 100644 --- a/server/api/api/v1/instance/index.ts +++ b/server/api/api/v1/instance/index.ts @@ -1,11 +1,11 @@ import { applyConfig, auth } from "@/api"; import { jsonResponse, proxyUrl } from "@/response"; -import { and, count, eq, isNull } from "drizzle-orm"; +import { and, eq, isNull } from "drizzle-orm"; import type { Hono } from "hono"; -import { db } from "~/drizzle/db"; -import { Instances, Users } from "~/drizzle/schema"; +import { Users } from "~/drizzle/schema"; import manifest from "~/package.json"; import { config } from "~/packages/config-manager"; +import { Instance } from "~/packages/database-interface/instance"; import { Note } from "~/packages/database-interface/note"; import { User } from "~/packages/database-interface/user"; @@ -38,13 +38,7 @@ export default (app: Hono) => and(isNull(Users.instanceId), eq(Users.isAdmin, true)), ); - const knownDomainsCount = ( - await db - .select({ - count: count(), - }) - .from(Instances) - )[0].count; + const knownDomainsCount = Instance.getCount(); // TODO: fill in more values return jsonResponse({