From d09f74e58a5147e0af7ae2f38c2b6774c85564d3 Mon Sep 17 00:00:00 2001 From: Jesse Wierzbinski Date: Fri, 28 Jun 2024 17:50:56 -1000 Subject: [PATCH] refactor: :truck: Rename functions, move getUrl to Attachment --- .../entities => classes/functions}/application.ts | 0 {database/entities => classes/functions}/emoji.ts | 0 .../entities => classes/functions}/federation.ts | 0 {database/entities => classes/functions}/instance.ts | 0 {database/entities => classes/functions}/like.ts | 0 .../entities => classes/functions}/notification.ts | 0 .../entities => classes/functions}/relationship.ts | 0 {database/entities => classes/functions}/status.ts | 0 {database/entities => classes/functions}/token.ts | 0 {database/entities => classes/functions}/user.ts | 0 cli/commands/emoji/add.ts | 6 +++--- cli/commands/emoji/import.ts | 4 ++-- database/entities/attachment.ts | 12 ------------ packages/database-interface/attachment.ts | 12 ++++++++++++ packages/database-interface/emoji.ts | 4 ++-- packages/database-interface/note.ts | 8 ++++---- packages/database-interface/oauth.ts | 2 +- packages/database-interface/user.ts | 6 +++--- packages/glitch-server/main.ts | 2 +- server/api/api/auth/mastodon-login/index.ts | 2 +- server/api/api/v1/accounts/:id/block.ts | 4 ++-- server/api/api/v1/accounts/:id/follow.ts | 4 ++-- server/api/api/v1/accounts/:id/mute.ts | 4 ++-- server/api/api/v1/accounts/:id/note.ts | 4 ++-- server/api/api/v1/accounts/:id/pin.ts | 4 ++-- .../api/api/v1/accounts/:id/remove_from_followers.ts | 4 ++-- server/api/api/v1/accounts/:id/unblock.ts | 4 ++-- server/api/api/v1/accounts/:id/unfollow.ts | 4 ++-- server/api/api/v1/accounts/:id/unmute.ts | 4 ++-- server/api/api/v1/accounts/:id/unpin.ts | 4 ++-- server/api/api/v1/accounts/lookup/index.ts | 2 +- server/api/api/v1/accounts/relationships/index.ts | 2 +- server/api/api/v1/accounts/search/index.ts | 2 +- .../api/api/v1/accounts/update_credentials/index.ts | 10 +++++----- server/api/api/v1/apps/verify_credentials/index.ts | 2 +- server/api/api/v1/emojis/:id/index.ts | 4 ++-- server/api/api/v1/emojis/index.ts | 4 ++-- .../api/v1/follow_requests/:account_id/authorize.ts | 4 ++-- .../api/api/v1/follow_requests/:account_id/reject.ts | 4 ++-- server/api/api/v1/media/:id/index.ts | 3 +-- server/api/api/v1/media/index.ts | 5 ++--- server/api/api/v1/notifications/:id/index.ts | 2 +- server/api/api/v1/notifications/index.ts | 4 ++-- server/api/api/v1/statuses/:id/favourite.ts | 2 +- server/api/api/v1/statuses/:id/index.ts | 2 +- server/api/api/v1/statuses/:id/unfavourite.ts | 2 +- server/api/api/v1/statuses/:id/unreblog.ts | 2 +- server/api/api/v1/statuses/index.ts | 2 +- server/api/api/v2/media/index.ts | 5 ++--- server/api/api/v2/search/index.ts | 2 +- server/api/oauth/authorize/index.ts | 2 +- server/api/oauth/sso/:issuer/callback/index.ts | 2 +- server/api/objects/:id/index.ts | 2 +- server/api/users/:uuid/inbox/index.ts | 2 +- tests/oauth-scopes.test.ts | 2 +- tests/utils.ts | 2 +- utils/api.ts | 4 ++-- utils/markdown.ts | 2 +- utils/oauth.ts | 2 +- utils/timelines.ts | 6 +++--- 60 files changed, 93 insertions(+), 96 deletions(-) rename {database/entities => classes/functions}/application.ts (100%) rename {database/entities => classes/functions}/emoji.ts (100%) rename {database/entities => classes/functions}/federation.ts (100%) rename {database/entities => classes/functions}/instance.ts (100%) rename {database/entities => classes/functions}/like.ts (100%) rename {database/entities => classes/functions}/notification.ts (100%) rename {database/entities => classes/functions}/relationship.ts (100%) rename {database/entities => classes/functions}/status.ts (100%) rename {database/entities => classes/functions}/token.ts (100%) rename {database/entities => classes/functions}/user.ts (100%) delete mode 100644 database/entities/attachment.ts diff --git a/database/entities/application.ts b/classes/functions/application.ts similarity index 100% rename from database/entities/application.ts rename to classes/functions/application.ts diff --git a/database/entities/emoji.ts b/classes/functions/emoji.ts similarity index 100% rename from database/entities/emoji.ts rename to classes/functions/emoji.ts diff --git a/database/entities/federation.ts b/classes/functions/federation.ts similarity index 100% rename from database/entities/federation.ts rename to classes/functions/federation.ts diff --git a/database/entities/instance.ts b/classes/functions/instance.ts similarity index 100% rename from database/entities/instance.ts rename to classes/functions/instance.ts diff --git a/database/entities/like.ts b/classes/functions/like.ts similarity index 100% rename from database/entities/like.ts rename to classes/functions/like.ts diff --git a/database/entities/notification.ts b/classes/functions/notification.ts similarity index 100% rename from database/entities/notification.ts rename to classes/functions/notification.ts diff --git a/database/entities/relationship.ts b/classes/functions/relationship.ts similarity index 100% rename from database/entities/relationship.ts rename to classes/functions/relationship.ts diff --git a/database/entities/status.ts b/classes/functions/status.ts similarity index 100% rename from database/entities/status.ts rename to classes/functions/status.ts diff --git a/database/entities/token.ts b/classes/functions/token.ts similarity index 100% rename from database/entities/token.ts rename to classes/functions/token.ts diff --git a/database/entities/user.ts b/classes/functions/user.ts similarity index 100% rename from database/entities/user.ts rename to classes/functions/user.ts diff --git a/cli/commands/emoji/add.ts b/cli/commands/emoji/add.ts index 386b4166..37257746 100644 --- a/cli/commands/emoji/add.ts +++ b/cli/commands/emoji/add.ts @@ -3,9 +3,9 @@ import chalk from "chalk"; import { and, eq, isNull } from "drizzle-orm"; import ora from "ora"; import { BaseCommand } from "~/cli/base"; -import { getUrl } from "~/database/entities/attachment"; import { Emojis } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; +import { Attachment } from "~/packages/database-interface/attachment"; import { Emoji } from "~/packages/database-interface/emoji"; import { MediaBackend } from "~/packages/media-manager"; @@ -118,7 +118,7 @@ export default class EmojiAdd extends BaseCommand { await Emoji.insert({ shortcode: args.shortcode, - url: getUrl(uploaded.path, config), + url: Attachment.getUrl(uploaded.path), visibleInPicker: true, contentType: uploaded.uploadedFile.type, }); @@ -127,7 +127,7 @@ export default class EmojiAdd extends BaseCommand { `${chalk.green("✓")} Created emoji ${chalk.green( args.shortcode, )} with url ${chalk.blue( - chalk.underline(getUrl(uploaded.path, config)), + chalk.underline(Attachment.getUrl(uploaded.path)), )}`, ); diff --git a/cli/commands/emoji/import.ts b/cli/commands/emoji/import.ts index bf6f6e17..161ccaec 100644 --- a/cli/commands/emoji/import.ts +++ b/cli/commands/emoji/import.ts @@ -5,9 +5,9 @@ import { lookup } from "mime-types"; import ora from "ora"; import { unzip } from "unzipit"; import { BaseCommand } from "~/cli/base"; -import { getUrl } from "~/database/entities/attachment"; import { Emojis } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; +import { Attachment } from "~/packages/database-interface/attachment"; import { Emoji } from "~/packages/database-interface/emoji"; import { MediaBackend } from "~/packages/media-manager"; @@ -215,7 +215,7 @@ export default class EmojiImport extends BaseCommand { await Emoji.insert({ shortcode: emoji.emoji.name, - url: getUrl(uploaded.path, config), + url: Attachment.getUrl(uploaded.path), visibleInPicker: true, contentType: uploaded.uploadedFile.type, }); diff --git a/database/entities/attachment.ts b/database/entities/attachment.ts deleted file mode 100644 index 98b81c8b..00000000 --- a/database/entities/attachment.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { MediaBackendType } from "media-manager"; -import type { Config } from "~/packages/config-manager"; - -export const getUrl = (name: string, config: Config) => { - if (config.media.backend === MediaBackendType.Local) { - return new URL(`/media/${name}`, config.http.base_url).toString(); - } - if (config.media.backend === MediaBackendType.S3) { - return new URL(`/${name}`, config.s3.public_url).toString(); - } - return ""; -}; diff --git a/packages/database-interface/attachment.ts b/packages/database-interface/attachment.ts index 4caf1b1f..663f8fca 100644 --- a/packages/database-interface/attachment.ts +++ b/packages/database-interface/attachment.ts @@ -1,5 +1,6 @@ import { proxyUrl } from "@/response"; import type { ContentFormat } from "@lysand-org/federation/types"; +import { config } from "config-manager"; import { type InferInsertModel, type InferSelectModel, @@ -8,6 +9,7 @@ import { eq, inArray, } from "drizzle-orm"; +import { MediaBackendType } from "media-manager"; import { db } from "~/drizzle/db"; import { Attachments } from "~/drizzle/schema"; import type { AsyncAttachment as APIAsyncAttachment } from "~/types/mastodon/async_attachment"; @@ -124,6 +126,16 @@ export class Attachment extends BaseInterface { return this.data.id; } + public static getUrl(name: string) { + if (config.media.backend === MediaBackendType.Local) { + return new URL(`/media/${name}`, config.http.base_url).toString(); + } + if (config.media.backend === MediaBackendType.S3) { + return new URL(`/${name}`, config.s3.public_url).toString(); + } + return ""; + } + public getMastodonType(): APIAttachment["type"] { if (this.data.mimeType.startsWith("image/")) { return "image"; diff --git a/packages/database-interface/emoji.ts b/packages/database-interface/emoji.ts index 0ecbda46..b3e0a33c 100644 --- a/packages/database-interface/emoji.ts +++ b/packages/database-interface/emoji.ts @@ -8,8 +8,8 @@ import { eq, inArray, } from "drizzle-orm"; -import type { EmojiWithInstance } from "~/database/entities/emoji"; -import { addInstanceIfNotExists } from "~/database/entities/instance"; +import type { EmojiWithInstance } from "~/classes/functions/emoji"; +import { addInstanceIfNotExists } from "~/classes/functions/instance"; import { db } from "~/drizzle/db"; import { Emojis, Instances } from "~/drizzle/schema"; import type { Emoji as APIEmoji } from "~/types/mastodon/emoji"; diff --git a/packages/database-interface/note.ts b/packages/database-interface/note.ts index f21b49e7..39357551 100644 --- a/packages/database-interface/note.ts +++ b/packages/database-interface/note.ts @@ -23,15 +23,15 @@ import { createRegExp, exactly, global } from "magic-regexp"; import { type Application, applicationToApi, -} from "~/database/entities/application"; -import { parseEmojis } from "~/database/entities/emoji"; -import { localObjectUri } from "~/database/entities/federation"; +} from "~/classes/functions/application"; +import { parseEmojis } from "~/classes/functions/emoji"; +import { localObjectUri } from "~/classes/functions/federation"; import { type StatusWithRelations, contentToHtml, findManyNotes, parseTextMentions, -} from "~/database/entities/status"; +} from "~/classes/functions/status"; import { db } from "~/drizzle/db"; import { Attachments, diff --git a/packages/database-interface/oauth.ts b/packages/database-interface/oauth.ts index fcf3296d..37760def 100644 --- a/packages/database-interface/oauth.ts +++ b/packages/database-interface/oauth.ts @@ -13,7 +13,7 @@ import { userInfoRequest, validateAuthResponse, } from "oauth4webapi"; -import type { Application } from "~/database/entities/application"; +import type { Application } from "~/classes/functions/application"; import { db } from "~/drizzle/db"; import { type Applications, OpenIdAccounts } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/packages/database-interface/user.ts b/packages/database-interface/user.ts index 2e160102..84806066 100644 --- a/packages/database-interface/user.ts +++ b/packages/database-interface/user.ts @@ -21,12 +21,12 @@ import { sql, } from "drizzle-orm"; import { htmlToText } from "html-to-text"; -import { objectToInboxRequest } from "~/database/entities/federation"; -import { addInstanceIfNotExists } from "~/database/entities/instance"; +import { objectToInboxRequest } from "~/classes/functions/federation"; +import { addInstanceIfNotExists } from "~/classes/functions/instance"; import { type UserWithRelations, findManyUsers, -} from "~/database/entities/user"; +} from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { EmojiToUser, diff --git a/packages/glitch-server/main.ts b/packages/glitch-server/main.ts index 23cb3433..315a12a7 100644 --- a/packages/glitch-server/main.ts +++ b/packages/glitch-server/main.ts @@ -2,7 +2,7 @@ import { join } from "node:path"; import { redirect } from "@/response"; import type { BunFile } from "bun"; import { config } from "config-manager"; -import { retrieveUserFromToken } from "~/database/entities/user"; +import { retrieveUserFromToken } from "~/classes/functions/user"; import type { User } from "~/packages/database-interface/user"; import { languages } from "./glitch-languages"; diff --git a/server/api/api/auth/mastodon-login/index.ts b/server/api/api/auth/mastodon-login/index.ts index 549ae944..1ab4ddec 100644 --- a/server/api/api/auth/mastodon-login/index.ts +++ b/server/api/api/auth/mastodon-login/index.ts @@ -5,7 +5,7 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { TokenType } from "~/database/entities/token"; +import { TokenType } from "~/classes/functions/token"; import { db } from "~/drizzle/db"; import { Tokens, Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/server/api/api/v1/accounts/:id/block.ts b/server/api/api/v1/accounts/:id/block.ts index 6d26e9d1..0eb6931d 100644 --- a/server/api/api/v1/accounts/:id/block.ts +++ b/server/api/api/v1/accounts/:id/block.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/follow.ts b/server/api/api/v1/accounts/:id/follow.ts index 3b2d7ca5..81863504 100644 --- a/server/api/api/v1/accounts/:id/follow.ts +++ b/server/api/api/v1/accounts/:id/follow.ts @@ -4,11 +4,11 @@ import { zValidator } from "@hono/zod-validator"; import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; +import { relationshipToApi } from "~/classes/functions/relationship"; import { followRequestUser, getRelationshipToOtherUser, -} from "~/database/entities/user"; +} from "~/classes/functions/user"; import { RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/mute.ts b/server/api/api/v1/accounts/:id/mute.ts index bf67826c..b411cb4b 100644 --- a/server/api/api/v1/accounts/:id/mute.ts +++ b/server/api/api/v1/accounts/:id/mute.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/note.ts b/server/api/api/v1/accounts/:id/note.ts index d25f3976..09b1165a 100644 --- a/server/api/api/v1/accounts/:id/note.ts +++ b/server/api/api/v1/accounts/:id/note.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/pin.ts b/server/api/api/v1/accounts/:id/pin.ts index f39a17d5..a70d2d64 100644 --- a/server/api/api/v1/accounts/:id/pin.ts +++ b/server/api/api/v1/accounts/:id/pin.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/remove_from_followers.ts b/server/api/api/v1/accounts/:id/remove_from_followers.ts index de691217..3f0a6c02 100644 --- a/server/api/api/v1/accounts/:id/remove_from_followers.ts +++ b/server/api/api/v1/accounts/:id/remove_from_followers.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/unblock.ts b/server/api/api/v1/accounts/:id/unblock.ts index f0ef32e3..677e8c13 100644 --- a/server/api/api/v1/accounts/:id/unblock.ts +++ b/server/api/api/v1/accounts/:id/unblock.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/unfollow.ts b/server/api/api/v1/accounts/:id/unfollow.ts index 1dc9a5d9..81668479 100644 --- a/server/api/api/v1/accounts/:id/unfollow.ts +++ b/server/api/api/v1/accounts/:id/unfollow.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/unmute.ts b/server/api/api/v1/accounts/:id/unmute.ts index d64e9731..d3662632 100644 --- a/server/api/api/v1/accounts/:id/unmute.ts +++ b/server/api/api/v1/accounts/:id/unmute.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/:id/unpin.ts b/server/api/api/v1/accounts/:id/unpin.ts index f9c43417..7a61744e 100644 --- a/server/api/api/v1/accounts/:id/unpin.ts +++ b/server/api/api/v1/accounts/:id/unpin.ts @@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { relationshipToApi } from "~/database/entities/relationship"; -import { getRelationshipToOtherUser } from "~/database/entities/user"; +import { relationshipToApi } from "~/classes/functions/relationship"; +import { getRelationshipToOtherUser } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/lookup/index.ts b/server/api/api/v1/accounts/lookup/index.ts index 40fdb119..5df45dce 100644 --- a/server/api/api/v1/accounts/lookup/index.ts +++ b/server/api/api/v1/accounts/lookup/index.ts @@ -16,7 +16,7 @@ import { oneOrMore, } from "magic-regexp"; import { z } from "zod"; -import { resolveWebFinger } from "~/database/entities/user"; +import { resolveWebFinger } from "~/classes/functions/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/relationships/index.ts b/server/api/api/v1/accounts/relationships/index.ts index 254d6a02..62d1ffff 100644 --- a/server/api/api/v1/accounts/relationships/index.ts +++ b/server/api/api/v1/accounts/relationships/index.ts @@ -6,7 +6,7 @@ import { z } from "zod"; import { createNewRelationship, relationshipToApi, -} from "~/database/entities/relationship"; +} from "~/classes/functions/relationship"; import { db } from "~/drizzle/db"; import { RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/search/index.ts b/server/api/api/v1/accounts/search/index.ts index dc3b4413..5f21d901 100644 --- a/server/api/api/v1/accounts/search/index.ts +++ b/server/api/api/v1/accounts/search/index.ts @@ -16,7 +16,7 @@ import { } from "magic-regexp"; import stringComparison from "string-comparison"; import { z } from "zod"; -import { resolveWebFinger } from "~/database/entities/user"; +import { resolveWebFinger } from "~/classes/functions/user"; import { RolePermissions, Users } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/accounts/update_credentials/index.ts b/server/api/api/v1/accounts/update_credentials/index.ts index a79d7081..0247d2ef 100644 --- a/server/api/api/v1/accounts/update_credentials/index.ts +++ b/server/api/api/v1/accounts/update_credentials/index.ts @@ -8,11 +8,11 @@ import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { MediaBackend } from "media-manager"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; -import { parseEmojis } from "~/database/entities/emoji"; -import { contentToHtml } from "~/database/entities/status"; +import { parseEmojis } from "~/classes/functions/emoji"; +import { contentToHtml } from "~/classes/functions/status"; import { db } from "~/drizzle/db"; import { EmojiToUser, RolePermissions, Users } from "~/drizzle/schema"; +import { Attachment } from "~/packages/database-interface/attachment"; import type { Emoji } from "~/packages/database-interface/emoji"; import { User } from "~/packages/database-interface/user"; @@ -206,13 +206,13 @@ export default (app: Hono) => if (avatar) { const { path } = await mediaManager.addFile(avatar); - self.avatar = getUrl(path, config); + self.avatar = Attachment.getUrl(path); } if (header) { const { path } = await mediaManager.addFile(header); - self.header = getUrl(path, config); + self.header = Attachment.getUrl(path); } if (locked) { diff --git a/server/api/api/v1/apps/verify_credentials/index.ts b/server/api/api/v1/apps/verify_credentials/index.ts index bff0a4e3..90a88f72 100644 --- a/server/api/api/v1/apps/verify_credentials/index.ts +++ b/server/api/api/v1/apps/verify_credentials/index.ts @@ -1,7 +1,7 @@ import { applyConfig, auth } from "@/api"; import { errorResponse, jsonResponse } from "@/response"; import type { Hono } from "hono"; -import { getFromToken } from "~/database/entities/application"; +import { getFromToken } from "~/classes/functions/application"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/server/api/api/v1/emojis/:id/index.ts b/server/api/api/v1/emojis/:id/index.ts index 9709a41e..0515d63c 100644 --- a/server/api/api/v1/emojis/:id/index.ts +++ b/server/api/api/v1/emojis/:id/index.ts @@ -11,10 +11,10 @@ import { zValidator } from "@hono/zod-validator"; import { eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; import { db } from "~/drizzle/db"; import { Emojis, RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; +import { Attachment } from "~/packages/database-interface/attachment"; import { Emoji } from "~/packages/database-interface/emoji"; import { MediaBackend } from "~/packages/media-manager"; @@ -185,7 +185,7 @@ export default (app: Hono) => url = form.element; } - modified.url = getUrl(url, config); + modified.url = Attachment.getUrl(url); modified.contentType = contentType; } diff --git a/server/api/api/v1/emojis/index.ts b/server/api/api/v1/emojis/index.ts index 32b29029..4a32c329 100644 --- a/server/api/api/v1/emojis/index.ts +++ b/server/api/api/v1/emojis/index.ts @@ -11,9 +11,9 @@ import { zValidator } from "@hono/zod-validator"; import { and, eq, isNull, or } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; import { Emojis, RolePermissions } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; +import { Attachment } from "~/packages/database-interface/attachment"; import { Emoji } from "~/packages/database-interface/emoji"; import { MediaBackend } from "~/packages/media-manager"; @@ -130,7 +130,7 @@ export default (app: Hono) => const emoji = await Emoji.insert({ shortcode, - url: getUrl(url, config), + url: Attachment.getUrl(url), visibleInPicker: true, ownerId: global ? null : user.id, category, diff --git a/server/api/api/v1/follow_requests/:account_id/authorize.ts b/server/api/api/v1/follow_requests/:account_id/authorize.ts index 1e002aba..66c83337 100644 --- a/server/api/api/v1/follow_requests/:account_id/authorize.ts +++ b/server/api/api/v1/follow_requests/:account_id/authorize.ts @@ -7,11 +7,11 @@ import { z } from "zod"; import { checkForBidirectionalRelationships, relationshipToApi, -} from "~/database/entities/relationship"; +} from "~/classes/functions/relationship"; import { getRelationshipToOtherUser, sendFollowAccept, -} from "~/database/entities/user"; +} from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/follow_requests/:account_id/reject.ts b/server/api/api/v1/follow_requests/:account_id/reject.ts index d48844b8..96b593b4 100644 --- a/server/api/api/v1/follow_requests/:account_id/reject.ts +++ b/server/api/api/v1/follow_requests/:account_id/reject.ts @@ -7,11 +7,11 @@ import { z } from "zod"; import { checkForBidirectionalRelationships, relationshipToApi, -} from "~/database/entities/relationship"; +} from "~/classes/functions/relationship"; import { getRelationshipToOtherUser, sendFollowReject, -} from "~/database/entities/user"; +} from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Relationships, RolePermissions } from "~/drizzle/schema"; import { User } from "~/packages/database-interface/user"; diff --git a/server/api/api/v1/media/:id/index.ts b/server/api/api/v1/media/:id/index.ts index ee9cf875..102a10ce 100644 --- a/server/api/api/v1/media/:id/index.ts +++ b/server/api/api/v1/media/:id/index.ts @@ -5,7 +5,6 @@ import { config } from "config-manager"; import type { Hono } from "hono"; import { MediaBackend } from "media-manager"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; import { RolePermissions } from "~/drizzle/schema"; import { Attachment } from "~/packages/database-interface/attachment"; @@ -79,7 +78,7 @@ export default (app: Hono) => if (thumbnail) { const { path } = await mediaManager.addFile(thumbnail); - thumbnailUrl = getUrl(path, config); + thumbnailUrl = Attachment.getUrl(path); } const descriptionText = diff --git a/server/api/api/v1/media/index.ts b/server/api/api/v1/media/index.ts index aae9ddfb..14666163 100644 --- a/server/api/api/v1/media/index.ts +++ b/server/api/api/v1/media/index.ts @@ -7,7 +7,6 @@ import type { Hono } from "hono"; import { MediaBackend } from "media-manager"; import sharp from "sharp"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; import { RolePermissions } from "~/drizzle/schema"; import { Attachment } from "~/packages/database-interface/attachment"; @@ -106,14 +105,14 @@ export default (app: Hono) => const { path } = await mediaManager.addFile(file); - url = getUrl(path, config); + url = Attachment.getUrl(path); let thumbnailUrl = ""; if (thumbnail) { const { path } = await mediaManager.addFile(thumbnail); - thumbnailUrl = getUrl(path, config); + thumbnailUrl = Attachment.getUrl(path); } const newAttachment = await Attachment.insert({ diff --git a/server/api/api/v1/notifications/:id/index.ts b/server/api/api/v1/notifications/:id/index.ts index 0ff7ec0c..04daaede 100644 --- a/server/api/api/v1/notifications/:id/index.ts +++ b/server/api/api/v1/notifications/:id/index.ts @@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response"; import { zValidator } from "@hono/zod-validator"; import type { Hono } from "hono"; import { z } from "zod"; -import { findManyNotifications } from "~/database/entities/notification"; +import { findManyNotifications } from "~/classes/functions/notification"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/server/api/api/v1/notifications/index.ts b/server/api/api/v1/notifications/index.ts index f8c4a99e..8df5391f 100644 --- a/server/api/api/v1/notifications/index.ts +++ b/server/api/api/v1/notifications/index.ts @@ -8,8 +8,8 @@ import { z } from "zod"; import { findManyNotifications, notificationToApi, -} from "~/database/entities/notification"; -import type { NotificationWithRelations } from "~/database/entities/notification"; +} from "~/classes/functions/notification"; +import type { NotificationWithRelations } from "~/classes/functions/notification"; import { RolePermissions } from "~/drizzle/schema"; export const meta = applyConfig({ diff --git a/server/api/api/v1/statuses/:id/favourite.ts b/server/api/api/v1/statuses/:id/favourite.ts index ff2736e8..62853f86 100644 --- a/server/api/api/v1/statuses/:id/favourite.ts +++ b/server/api/api/v1/statuses/:id/favourite.ts @@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response"; import { zValidator } from "@hono/zod-validator"; import type { Hono } from "hono"; import { z } from "zod"; -import { createLike } from "~/database/entities/like"; +import { createLike } from "~/classes/functions/like"; import { db } from "~/drizzle/db"; import { RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/index.ts b/server/api/api/v1/statuses/:id/index.ts index f3126342..c76dcf97 100644 --- a/server/api/api/v1/statuses/:id/index.ts +++ b/server/api/api/v1/statuses/:id/index.ts @@ -11,7 +11,7 @@ import { config } from "config-manager"; import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { undoFederationRequest } from "~/database/entities/federation"; +import { undoFederationRequest } from "~/classes/functions/federation"; import { RolePermissions } from "~/drizzle/schema"; import { Attachment } from "~/packages/database-interface/attachment"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/unfavourite.ts b/server/api/api/v1/statuses/:id/unfavourite.ts index bb322142..d776f68f 100644 --- a/server/api/api/v1/statuses/:id/unfavourite.ts +++ b/server/api/api/v1/statuses/:id/unfavourite.ts @@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response"; import { zValidator } from "@hono/zod-validator"; import type { Hono } from "hono"; import { z } from "zod"; -import { deleteLike } from "~/database/entities/like"; +import { deleteLike } from "~/classes/functions/like"; import { RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/:id/unreblog.ts b/server/api/api/v1/statuses/:id/unreblog.ts index 8a2367af..0f36a21a 100644 --- a/server/api/api/v1/statuses/:id/unreblog.ts +++ b/server/api/api/v1/statuses/:id/unreblog.ts @@ -4,7 +4,7 @@ import { zValidator } from "@hono/zod-validator"; import { and, eq } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { undoFederationRequest } from "~/database/entities/federation"; +import { undoFederationRequest } from "~/classes/functions/federation"; import { Notes, RolePermissions } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v1/statuses/index.ts b/server/api/api/v1/statuses/index.ts index bee6abc2..b3ab8f36 100644 --- a/server/api/api/v1/statuses/index.ts +++ b/server/api/api/v1/statuses/index.ts @@ -5,7 +5,7 @@ import { config } from "config-manager"; import type { Hono } from "hono"; import ISO6391 from "iso-639-1"; import { z } from "zod"; -import { federateNote } from "~/database/entities/status"; +import { federateNote } from "~/classes/functions/status"; import { RolePermissions } from "~/drizzle/schema"; import { Attachment } from "~/packages/database-interface/attachment"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/api/v2/media/index.ts b/server/api/api/v2/media/index.ts index fa257bdb..3a17c4ea 100644 --- a/server/api/api/v2/media/index.ts +++ b/server/api/api/v2/media/index.ts @@ -7,7 +7,6 @@ import type { Hono } from "hono"; import { MediaBackend } from "media-manager"; import sharp from "sharp"; import { z } from "zod"; -import { getUrl } from "~/database/entities/attachment"; import { RolePermissions } from "~/drizzle/schema"; import { Attachment } from "~/packages/database-interface/attachment"; @@ -106,14 +105,14 @@ export default (app: Hono) => const { path } = await mediaManager.addFile(file); - url = getUrl(path, config); + url = Attachment.getUrl(path); let thumbnailUrl = ""; if (thumbnail) { const { path } = await mediaManager.addFile(thumbnail); - thumbnailUrl = getUrl(path, config); + thumbnailUrl = Attachment.getUrl(path); } const newAttachment = await Attachment.insert({ diff --git a/server/api/api/v2/search/index.ts b/server/api/api/v2/search/index.ts index dd69514d..57952c9d 100644 --- a/server/api/api/v2/search/index.ts +++ b/server/api/api/v2/search/index.ts @@ -6,7 +6,7 @@ import { getLogger } from "@logtape/logtape"; import { and, eq, inArray, sql } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { resolveWebFinger } from "~/database/entities/user"; +import { resolveWebFinger } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Instances, Notes, RolePermissions, Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/server/api/oauth/authorize/index.ts b/server/api/oauth/authorize/index.ts index 7c635d97..15db19ff 100644 --- a/server/api/oauth/authorize/index.ts +++ b/server/api/oauth/authorize/index.ts @@ -5,7 +5,7 @@ import { zValidator } from "@hono/zod-validator"; import type { Hono } from "hono"; import { SignJWT, jwtVerify } from "jose"; import { z } from "zod"; -import { TokenType } from "~/database/entities/token"; +import { TokenType } from "~/classes/functions/token"; import { db } from "~/drizzle/db"; import { RolePermissions, Tokens } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/server/api/oauth/sso/:issuer/callback/index.ts b/server/api/oauth/sso/:issuer/callback/index.ts index b34f507e..9741b466 100644 --- a/server/api/oauth/sso/:issuer/callback/index.ts +++ b/server/api/oauth/sso/:issuer/callback/index.ts @@ -6,7 +6,7 @@ import { and, eq, isNull } from "drizzle-orm"; import type { Hono } from "hono"; import { SignJWT } from "jose"; import { z } from "zod"; -import { TokenType } from "~/database/entities/token"; +import { TokenType } from "~/classes/functions/token"; import { db } from "~/drizzle/db"; import { RolePermissions, Tokens, Users } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/server/api/objects/:id/index.ts b/server/api/objects/:id/index.ts index 4394978f..b50fe9f7 100644 --- a/server/api/objects/:id/index.ts +++ b/server/api/objects/:id/index.ts @@ -5,7 +5,7 @@ import type { Entity } from "@lysand-org/federation/types"; import { and, eq, inArray, sql } from "drizzle-orm"; import type { Hono } from "hono"; import { z } from "zod"; -import { type LikeType, likeToLysand } from "~/database/entities/like"; +import { type LikeType, likeToLysand } from "~/classes/functions/like"; import { db } from "~/drizzle/db"; import { Notes } from "~/drizzle/schema"; import { Note } from "~/packages/database-interface/note"; diff --git a/server/api/users/:uuid/inbox/index.ts b/server/api/users/:uuid/inbox/index.ts index 24d66f0a..c3e4c7d6 100644 --- a/server/api/users/:uuid/inbox/index.ts +++ b/server/api/users/:uuid/inbox/index.ts @@ -17,7 +17,7 @@ import { type ValidationError, isValidationError } from "zod-validation-error"; import { getRelationshipToOtherUser, sendFollowAccept, -} from "~/database/entities/user"; +} from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Notes, Notifications, Relationships } from "~/drizzle/schema"; import { config } from "~/packages/config-manager"; diff --git a/tests/oauth-scopes.test.ts b/tests/oauth-scopes.test.ts index 2569607b..15488b88 100644 --- a/tests/oauth-scopes.test.ts +++ b/tests/oauth-scopes.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "bun:test"; import { checkIfOauthIsValid } from "@/oauth"; -import type { Application } from "~/database/entities/application"; +import type { Application } from "~/classes/functions/application"; describe("checkIfOauthIsValid", () => { it("should return true when routeScopes and application.scopes are empty", () => { diff --git a/tests/utils.ts b/tests/utils.ts index 265133c8..07de9a5b 100644 --- a/tests/utils.ts +++ b/tests/utils.ts @@ -3,7 +3,7 @@ import { randomString } from "@/math"; import { solveChallenge } from "altcha-lib"; import { asc, inArray, like } from "drizzle-orm"; import { appFactory } from "~/app"; -import type { Status } from "~/database/entities/status"; +import type { Status } from "~/classes/functions/status"; import { db } from "~/drizzle/db"; import { setupDatabase } from "~/drizzle/db"; import { Notes, Tokens, Users } from "~/drizzle/schema"; diff --git a/utils/api.ts b/utils/api.ts index efcd6d3b..3a0367e9 100644 --- a/utils/api.ts +++ b/utils/api.ts @@ -23,8 +23,8 @@ import { import { parse } from "qs"; import type { z } from "zod"; import { fromZodError } from "zod-validation-error"; -import type { Application } from "~/database/entities/application"; -import { type AuthData, getFromHeader } from "~/database/entities/user"; +import type { Application } from "~/classes/functions/application"; +import { type AuthData, getFromHeader } from "~/classes/functions/user"; import { db } from "~/drizzle/db"; import { Challenges } from "~/drizzle/schema"; import type { User } from "~/packages/database-interface/user"; diff --git a/utils/markdown.ts b/utils/markdown.ts index 95ebdbc1..ca48337f 100644 --- a/utils/markdown.ts +++ b/utils/markdown.ts @@ -1,5 +1,5 @@ import { getLogger } from "@logtape/logtape"; -import { markdownParse } from "~/database/entities/status"; +import { markdownParse } from "~/classes/functions/status"; export const renderMarkdownInPath = async ( path: string, diff --git a/utils/oauth.ts b/utils/oauth.ts index 4da680a8..8d8b5a13 100644 --- a/utils/oauth.ts +++ b/utils/oauth.ts @@ -1,4 +1,4 @@ -import type { Application } from "~/database/entities/application"; +import type { Application } from "~/classes/functions/application"; /** * Check if an OAuth application is valid for a route diff --git a/utils/timelines.ts b/utils/timelines.ts index af8b0400..0d68e331 100644 --- a/utils/timelines.ts +++ b/utils/timelines.ts @@ -2,9 +2,9 @@ import { config } from "config-manager"; import type { Notification, findManyNotifications, -} from "~/database/entities/notification"; -import type { Status, findManyNotes } from "~/database/entities/status"; -import type { UserType, findManyUsers } from "~/database/entities/user"; +} from "~/classes/functions/notification"; +import type { Status, findManyNotes } from "~/classes/functions/status"; +import type { UserType, findManyUsers } from "~/classes/functions/user"; import type { db } from "~/drizzle/db"; export async function fetchTimeline(