refactor: 🚚 Rename functions, move getUrl to Attachment

This commit is contained in:
Jesse Wierzbinski 2024-06-28 17:50:56 -10:00
parent 11c3931007
commit d09f74e58a
No known key found for this signature in database
60 changed files with 93 additions and 96 deletions

View file

@ -3,9 +3,9 @@ import chalk from "chalk";
import { and, eq, isNull } from "drizzle-orm"; import { and, eq, isNull } from "drizzle-orm";
import ora from "ora"; import ora from "ora";
import { BaseCommand } from "~/cli/base"; import { BaseCommand } from "~/cli/base";
import { getUrl } from "~/database/entities/attachment";
import { Emojis } from "~/drizzle/schema"; import { Emojis } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";
import { Attachment } from "~/packages/database-interface/attachment";
import { Emoji } from "~/packages/database-interface/emoji"; import { Emoji } from "~/packages/database-interface/emoji";
import { MediaBackend } from "~/packages/media-manager"; import { MediaBackend } from "~/packages/media-manager";
@ -118,7 +118,7 @@ export default class EmojiAdd extends BaseCommand<typeof EmojiAdd> {
await Emoji.insert({ await Emoji.insert({
shortcode: args.shortcode, shortcode: args.shortcode,
url: getUrl(uploaded.path, config), url: Attachment.getUrl(uploaded.path),
visibleInPicker: true, visibleInPicker: true,
contentType: uploaded.uploadedFile.type, contentType: uploaded.uploadedFile.type,
}); });
@ -127,7 +127,7 @@ export default class EmojiAdd extends BaseCommand<typeof EmojiAdd> {
`${chalk.green("✓")} Created emoji ${chalk.green( `${chalk.green("✓")} Created emoji ${chalk.green(
args.shortcode, args.shortcode,
)} with url ${chalk.blue( )} with url ${chalk.blue(
chalk.underline(getUrl(uploaded.path, config)), chalk.underline(Attachment.getUrl(uploaded.path)),
)}`, )}`,
); );

View file

@ -5,9 +5,9 @@ import { lookup } from "mime-types";
import ora from "ora"; import ora from "ora";
import { unzip } from "unzipit"; import { unzip } from "unzipit";
import { BaseCommand } from "~/cli/base"; import { BaseCommand } from "~/cli/base";
import { getUrl } from "~/database/entities/attachment";
import { Emojis } from "~/drizzle/schema"; import { Emojis } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";
import { Attachment } from "~/packages/database-interface/attachment";
import { Emoji } from "~/packages/database-interface/emoji"; import { Emoji } from "~/packages/database-interface/emoji";
import { MediaBackend } from "~/packages/media-manager"; import { MediaBackend } from "~/packages/media-manager";
@ -215,7 +215,7 @@ export default class EmojiImport extends BaseCommand<typeof EmojiImport> {
await Emoji.insert({ await Emoji.insert({
shortcode: emoji.emoji.name, shortcode: emoji.emoji.name,
url: getUrl(uploaded.path, config), url: Attachment.getUrl(uploaded.path),
visibleInPicker: true, visibleInPicker: true,
contentType: uploaded.uploadedFile.type, contentType: uploaded.uploadedFile.type,
}); });

View file

@ -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 "";
};

View file

@ -1,5 +1,6 @@
import { proxyUrl } from "@/response"; import { proxyUrl } from "@/response";
import type { ContentFormat } from "@lysand-org/federation/types"; import type { ContentFormat } from "@lysand-org/federation/types";
import { config } from "config-manager";
import { import {
type InferInsertModel, type InferInsertModel,
type InferSelectModel, type InferSelectModel,
@ -8,6 +9,7 @@ import {
eq, eq,
inArray, inArray,
} from "drizzle-orm"; } from "drizzle-orm";
import { MediaBackendType } from "media-manager";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Attachments } from "~/drizzle/schema"; import { Attachments } from "~/drizzle/schema";
import type { AsyncAttachment as APIAsyncAttachment } from "~/types/mastodon/async_attachment"; import type { AsyncAttachment as APIAsyncAttachment } from "~/types/mastodon/async_attachment";
@ -124,6 +126,16 @@ export class Attachment extends BaseInterface<typeof Attachments> {
return this.data.id; 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"] { public getMastodonType(): APIAttachment["type"] {
if (this.data.mimeType.startsWith("image/")) { if (this.data.mimeType.startsWith("image/")) {
return "image"; return "image";

View file

@ -8,8 +8,8 @@ import {
eq, eq,
inArray, inArray,
} from "drizzle-orm"; } from "drizzle-orm";
import type { EmojiWithInstance } from "~/database/entities/emoji"; import type { EmojiWithInstance } from "~/classes/functions/emoji";
import { addInstanceIfNotExists } from "~/database/entities/instance"; import { addInstanceIfNotExists } from "~/classes/functions/instance";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Emojis, Instances } from "~/drizzle/schema"; import { Emojis, Instances } from "~/drizzle/schema";
import type { Emoji as APIEmoji } from "~/types/mastodon/emoji"; import type { Emoji as APIEmoji } from "~/types/mastodon/emoji";

View file

@ -23,15 +23,15 @@ import { createRegExp, exactly, global } from "magic-regexp";
import { import {
type Application, type Application,
applicationToApi, applicationToApi,
} from "~/database/entities/application"; } from "~/classes/functions/application";
import { parseEmojis } from "~/database/entities/emoji"; import { parseEmojis } from "~/classes/functions/emoji";
import { localObjectUri } from "~/database/entities/federation"; import { localObjectUri } from "~/classes/functions/federation";
import { import {
type StatusWithRelations, type StatusWithRelations,
contentToHtml, contentToHtml,
findManyNotes, findManyNotes,
parseTextMentions, parseTextMentions,
} from "~/database/entities/status"; } from "~/classes/functions/status";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { import {
Attachments, Attachments,

View file

@ -13,7 +13,7 @@ import {
userInfoRequest, userInfoRequest,
validateAuthResponse, validateAuthResponse,
} from "oauth4webapi"; } from "oauth4webapi";
import type { Application } from "~/database/entities/application"; import type { Application } from "~/classes/functions/application";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { type Applications, OpenIdAccounts } from "~/drizzle/schema"; import { type Applications, OpenIdAccounts } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -21,12 +21,12 @@ import {
sql, sql,
} from "drizzle-orm"; } from "drizzle-orm";
import { htmlToText } from "html-to-text"; import { htmlToText } from "html-to-text";
import { objectToInboxRequest } from "~/database/entities/federation"; import { objectToInboxRequest } from "~/classes/functions/federation";
import { addInstanceIfNotExists } from "~/database/entities/instance"; import { addInstanceIfNotExists } from "~/classes/functions/instance";
import { import {
type UserWithRelations, type UserWithRelations,
findManyUsers, findManyUsers,
} from "~/database/entities/user"; } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { import {
EmojiToUser, EmojiToUser,

View file

@ -2,7 +2,7 @@ import { join } from "node:path";
import { redirect } from "@/response"; import { redirect } from "@/response";
import type { BunFile } from "bun"; import type { BunFile } from "bun";
import { config } from "config-manager"; 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 type { User } from "~/packages/database-interface/user";
import { languages } from "./glitch-languages"; import { languages } from "./glitch-languages";

View file

@ -5,7 +5,7 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { TokenType } from "~/database/entities/token"; import { TokenType } from "~/classes/functions/token";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Tokens, Users } from "~/drizzle/schema"; import { Tokens, Users } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,11 +4,11 @@ import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono"; import type { Hono } from "hono";
import ISO6391 from "iso-639-1"; import ISO6391 from "iso-639-1";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { import {
followRequestUser, followRequestUser,
getRelationshipToOtherUser, getRelationshipToOtherUser,
} from "~/database/entities/user"; } from "~/classes/functions/user";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { and, eq } from "drizzle-orm"; import { and, eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -4,8 +4,8 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { relationshipToApi } from "~/database/entities/relationship"; import { relationshipToApi } from "~/classes/functions/relationship";
import { getRelationshipToOtherUser } from "~/database/entities/user"; import { getRelationshipToOtherUser } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -16,7 +16,7 @@ import {
oneOrMore, oneOrMore,
} from "magic-regexp"; } from "magic-regexp";
import { z } from "zod"; import { z } from "zod";
import { resolveWebFinger } from "~/database/entities/user"; import { resolveWebFinger } from "~/classes/functions/user";
import { RolePermissions, Users } from "~/drizzle/schema"; import { RolePermissions, Users } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -6,7 +6,7 @@ import { z } from "zod";
import { import {
createNewRelationship, createNewRelationship,
relationshipToApi, relationshipToApi,
} from "~/database/entities/relationship"; } from "~/classes/functions/relationship";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -16,7 +16,7 @@ import {
} from "magic-regexp"; } from "magic-regexp";
import stringComparison from "string-comparison"; import stringComparison from "string-comparison";
import { z } from "zod"; import { z } from "zod";
import { resolveWebFinger } from "~/database/entities/user"; import { resolveWebFinger } from "~/classes/functions/user";
import { RolePermissions, Users } from "~/drizzle/schema"; import { RolePermissions, Users } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -8,11 +8,11 @@ import type { Hono } from "hono";
import ISO6391 from "iso-639-1"; import ISO6391 from "iso-639-1";
import { MediaBackend } from "media-manager"; import { MediaBackend } from "media-manager";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment"; import { parseEmojis } from "~/classes/functions/emoji";
import { parseEmojis } from "~/database/entities/emoji"; import { contentToHtml } from "~/classes/functions/status";
import { contentToHtml } from "~/database/entities/status";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { EmojiToUser, RolePermissions, Users } from "~/drizzle/schema"; import { EmojiToUser, RolePermissions, Users } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment";
import type { Emoji } from "~/packages/database-interface/emoji"; import type { Emoji } from "~/packages/database-interface/emoji";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";
@ -206,13 +206,13 @@ export default (app: Hono) =>
if (avatar) { if (avatar) {
const { path } = await mediaManager.addFile(avatar); const { path } = await mediaManager.addFile(avatar);
self.avatar = getUrl(path, config); self.avatar = Attachment.getUrl(path);
} }
if (header) { if (header) {
const { path } = await mediaManager.addFile(header); const { path } = await mediaManager.addFile(header);
self.header = getUrl(path, config); self.header = Attachment.getUrl(path);
} }
if (locked) { if (locked) {

View file

@ -1,7 +1,7 @@
import { applyConfig, auth } from "@/api"; import { applyConfig, auth } from "@/api";
import { errorResponse, jsonResponse } from "@/response"; import { errorResponse, jsonResponse } from "@/response";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { getFromToken } from "~/database/entities/application"; import { getFromToken } from "~/classes/functions/application";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
export const meta = applyConfig({ export const meta = applyConfig({

View file

@ -11,10 +11,10 @@ import { zValidator } from "@hono/zod-validator";
import { eq } from "drizzle-orm"; import { eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Emojis, RolePermissions } from "~/drizzle/schema"; import { Emojis, RolePermissions } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";
import { Attachment } from "~/packages/database-interface/attachment";
import { Emoji } from "~/packages/database-interface/emoji"; import { Emoji } from "~/packages/database-interface/emoji";
import { MediaBackend } from "~/packages/media-manager"; import { MediaBackend } from "~/packages/media-manager";
@ -185,7 +185,7 @@ export default (app: Hono) =>
url = form.element; url = form.element;
} }
modified.url = getUrl(url, config); modified.url = Attachment.getUrl(url);
modified.contentType = contentType; modified.contentType = contentType;
} }

View file

@ -11,9 +11,9 @@ import { zValidator } from "@hono/zod-validator";
import { and, eq, isNull, or } from "drizzle-orm"; import { and, eq, isNull, or } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment";
import { Emojis, RolePermissions } from "~/drizzle/schema"; import { Emojis, RolePermissions } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";
import { Attachment } from "~/packages/database-interface/attachment";
import { Emoji } from "~/packages/database-interface/emoji"; import { Emoji } from "~/packages/database-interface/emoji";
import { MediaBackend } from "~/packages/media-manager"; import { MediaBackend } from "~/packages/media-manager";
@ -130,7 +130,7 @@ export default (app: Hono) =>
const emoji = await Emoji.insert({ const emoji = await Emoji.insert({
shortcode, shortcode,
url: getUrl(url, config), url: Attachment.getUrl(url),
visibleInPicker: true, visibleInPicker: true,
ownerId: global ? null : user.id, ownerId: global ? null : user.id,
category, category,

View file

@ -7,11 +7,11 @@ import { z } from "zod";
import { import {
checkForBidirectionalRelationships, checkForBidirectionalRelationships,
relationshipToApi, relationshipToApi,
} from "~/database/entities/relationship"; } from "~/classes/functions/relationship";
import { import {
getRelationshipToOtherUser, getRelationshipToOtherUser,
sendFollowAccept, sendFollowAccept,
} from "~/database/entities/user"; } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -7,11 +7,11 @@ import { z } from "zod";
import { import {
checkForBidirectionalRelationships, checkForBidirectionalRelationships,
relationshipToApi, relationshipToApi,
} from "~/database/entities/relationship"; } from "~/classes/functions/relationship";
import { import {
getRelationshipToOtherUser, getRelationshipToOtherUser,
sendFollowReject, sendFollowReject,
} from "~/database/entities/user"; } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Relationships, RolePermissions } from "~/drizzle/schema"; import { Relationships, RolePermissions } from "~/drizzle/schema";
import { User } from "~/packages/database-interface/user"; import { User } from "~/packages/database-interface/user";

View file

@ -5,7 +5,6 @@ import { config } from "config-manager";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { MediaBackend } from "media-manager"; import { MediaBackend } from "media-manager";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment"; import { Attachment } from "~/packages/database-interface/attachment";
@ -79,7 +78,7 @@ export default (app: Hono) =>
if (thumbnail) { if (thumbnail) {
const { path } = await mediaManager.addFile(thumbnail); const { path } = await mediaManager.addFile(thumbnail);
thumbnailUrl = getUrl(path, config); thumbnailUrl = Attachment.getUrl(path);
} }
const descriptionText = const descriptionText =

View file

@ -7,7 +7,6 @@ import type { Hono } from "hono";
import { MediaBackend } from "media-manager"; import { MediaBackend } from "media-manager";
import sharp from "sharp"; import sharp from "sharp";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment"; import { Attachment } from "~/packages/database-interface/attachment";
@ -106,14 +105,14 @@ export default (app: Hono) =>
const { path } = await mediaManager.addFile(file); const { path } = await mediaManager.addFile(file);
url = getUrl(path, config); url = Attachment.getUrl(path);
let thumbnailUrl = ""; let thumbnailUrl = "";
if (thumbnail) { if (thumbnail) {
const { path } = await mediaManager.addFile(thumbnail); const { path } = await mediaManager.addFile(thumbnail);
thumbnailUrl = getUrl(path, config); thumbnailUrl = Attachment.getUrl(path);
} }
const newAttachment = await Attachment.insert({ const newAttachment = await Attachment.insert({

View file

@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response";
import { zValidator } from "@hono/zod-validator"; import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { findManyNotifications } from "~/database/entities/notification"; import { findManyNotifications } from "~/classes/functions/notification";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
export const meta = applyConfig({ export const meta = applyConfig({

View file

@ -8,8 +8,8 @@ import { z } from "zod";
import { import {
findManyNotifications, findManyNotifications,
notificationToApi, notificationToApi,
} from "~/database/entities/notification"; } from "~/classes/functions/notification";
import type { NotificationWithRelations } from "~/database/entities/notification"; import type { NotificationWithRelations } from "~/classes/functions/notification";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
export const meta = applyConfig({ export const meta = applyConfig({

View file

@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response";
import { zValidator } from "@hono/zod-validator"; import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { createLike } from "~/database/entities/like"; import { createLike } from "~/classes/functions/like";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -11,7 +11,7 @@ import { config } from "config-manager";
import type { Hono } from "hono"; import type { Hono } from "hono";
import ISO6391 from "iso-639-1"; import ISO6391 from "iso-639-1";
import { z } from "zod"; import { z } from "zod";
import { undoFederationRequest } from "~/database/entities/federation"; import { undoFederationRequest } from "~/classes/functions/federation";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment"; import { Attachment } from "~/packages/database-interface/attachment";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -3,7 +3,7 @@ import { errorResponse, jsonResponse } from "@/response";
import { zValidator } from "@hono/zod-validator"; import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { deleteLike } from "~/database/entities/like"; import { deleteLike } from "~/classes/functions/like";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -4,7 +4,7 @@ import { zValidator } from "@hono/zod-validator";
import { and, eq } from "drizzle-orm"; import { and, eq } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { undoFederationRequest } from "~/database/entities/federation"; import { undoFederationRequest } from "~/classes/functions/federation";
import { Notes, RolePermissions } from "~/drizzle/schema"; import { Notes, RolePermissions } from "~/drizzle/schema";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -5,7 +5,7 @@ import { config } from "config-manager";
import type { Hono } from "hono"; import type { Hono } from "hono";
import ISO6391 from "iso-639-1"; import ISO6391 from "iso-639-1";
import { z } from "zod"; import { z } from "zod";
import { federateNote } from "~/database/entities/status"; import { federateNote } from "~/classes/functions/status";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment"; import { Attachment } from "~/packages/database-interface/attachment";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -7,7 +7,6 @@ import type { Hono } from "hono";
import { MediaBackend } from "media-manager"; import { MediaBackend } from "media-manager";
import sharp from "sharp"; import sharp from "sharp";
import { z } from "zod"; import { z } from "zod";
import { getUrl } from "~/database/entities/attachment";
import { RolePermissions } from "~/drizzle/schema"; import { RolePermissions } from "~/drizzle/schema";
import { Attachment } from "~/packages/database-interface/attachment"; import { Attachment } from "~/packages/database-interface/attachment";
@ -106,14 +105,14 @@ export default (app: Hono) =>
const { path } = await mediaManager.addFile(file); const { path } = await mediaManager.addFile(file);
url = getUrl(path, config); url = Attachment.getUrl(path);
let thumbnailUrl = ""; let thumbnailUrl = "";
if (thumbnail) { if (thumbnail) {
const { path } = await mediaManager.addFile(thumbnail); const { path } = await mediaManager.addFile(thumbnail);
thumbnailUrl = getUrl(path, config); thumbnailUrl = Attachment.getUrl(path);
} }
const newAttachment = await Attachment.insert({ const newAttachment = await Attachment.insert({

View file

@ -6,7 +6,7 @@ import { getLogger } from "@logtape/logtape";
import { and, eq, inArray, sql } from "drizzle-orm"; import { and, eq, inArray, sql } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; import { z } from "zod";
import { resolveWebFinger } from "~/database/entities/user"; import { resolveWebFinger } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Instances, Notes, RolePermissions, Users } from "~/drizzle/schema"; import { Instances, Notes, RolePermissions, Users } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -5,7 +5,7 @@ import { zValidator } from "@hono/zod-validator";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { SignJWT, jwtVerify } from "jose"; import { SignJWT, jwtVerify } from "jose";
import { z } from "zod"; import { z } from "zod";
import { TokenType } from "~/database/entities/token"; import { TokenType } from "~/classes/functions/token";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { RolePermissions, Tokens } from "~/drizzle/schema"; import { RolePermissions, Tokens } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -6,7 +6,7 @@ import { and, eq, isNull } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { SignJWT } from "jose"; import { SignJWT } from "jose";
import { z } from "zod"; import { z } from "zod";
import { TokenType } from "~/database/entities/token"; import { TokenType } from "~/classes/functions/token";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { RolePermissions, Tokens, Users } from "~/drizzle/schema"; import { RolePermissions, Tokens, Users } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -5,7 +5,7 @@ import type { Entity } from "@lysand-org/federation/types";
import { and, eq, inArray, sql } from "drizzle-orm"; import { and, eq, inArray, sql } from "drizzle-orm";
import type { Hono } from "hono"; import type { Hono } from "hono";
import { z } from "zod"; 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 { db } from "~/drizzle/db";
import { Notes } from "~/drizzle/schema"; import { Notes } from "~/drizzle/schema";
import { Note } from "~/packages/database-interface/note"; import { Note } from "~/packages/database-interface/note";

View file

@ -17,7 +17,7 @@ import { type ValidationError, isValidationError } from "zod-validation-error";
import { import {
getRelationshipToOtherUser, getRelationshipToOtherUser,
sendFollowAccept, sendFollowAccept,
} from "~/database/entities/user"; } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Notes, Notifications, Relationships } from "~/drizzle/schema"; import { Notes, Notifications, Relationships } from "~/drizzle/schema";
import { config } from "~/packages/config-manager"; import { config } from "~/packages/config-manager";

View file

@ -1,6 +1,6 @@
import { describe, expect, it } from "bun:test"; import { describe, expect, it } from "bun:test";
import { checkIfOauthIsValid } from "@/oauth"; import { checkIfOauthIsValid } from "@/oauth";
import type { Application } from "~/database/entities/application"; import type { Application } from "~/classes/functions/application";
describe("checkIfOauthIsValid", () => { describe("checkIfOauthIsValid", () => {
it("should return true when routeScopes and application.scopes are empty", () => { it("should return true when routeScopes and application.scopes are empty", () => {

View file

@ -3,7 +3,7 @@ import { randomString } from "@/math";
import { solveChallenge } from "altcha-lib"; import { solveChallenge } from "altcha-lib";
import { asc, inArray, like } from "drizzle-orm"; import { asc, inArray, like } from "drizzle-orm";
import { appFactory } from "~/app"; import { appFactory } from "~/app";
import type { Status } from "~/database/entities/status"; import type { Status } from "~/classes/functions/status";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { setupDatabase } from "~/drizzle/db"; import { setupDatabase } from "~/drizzle/db";
import { Notes, Tokens, Users } from "~/drizzle/schema"; import { Notes, Tokens, Users } from "~/drizzle/schema";

View file

@ -23,8 +23,8 @@ import {
import { parse } from "qs"; import { parse } from "qs";
import type { z } from "zod"; import type { z } from "zod";
import { fromZodError } from "zod-validation-error"; import { fromZodError } from "zod-validation-error";
import type { Application } from "~/database/entities/application"; import type { Application } from "~/classes/functions/application";
import { type AuthData, getFromHeader } from "~/database/entities/user"; import { type AuthData, getFromHeader } from "~/classes/functions/user";
import { db } from "~/drizzle/db"; import { db } from "~/drizzle/db";
import { Challenges } from "~/drizzle/schema"; import { Challenges } from "~/drizzle/schema";
import type { User } from "~/packages/database-interface/user"; import type { User } from "~/packages/database-interface/user";

View file

@ -1,5 +1,5 @@
import { getLogger } from "@logtape/logtape"; import { getLogger } from "@logtape/logtape";
import { markdownParse } from "~/database/entities/status"; import { markdownParse } from "~/classes/functions/status";
export const renderMarkdownInPath = async ( export const renderMarkdownInPath = async (
path: string, path: string,

View file

@ -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 * Check if an OAuth application is valid for a route

View file

@ -2,9 +2,9 @@ import { config } from "config-manager";
import type { import type {
Notification, Notification,
findManyNotifications, findManyNotifications,
} from "~/database/entities/notification"; } from "~/classes/functions/notification";
import type { Status, findManyNotes } from "~/database/entities/status"; import type { Status, findManyNotes } from "~/classes/functions/status";
import type { UserType, findManyUsers } from "~/database/entities/user"; import type { UserType, findManyUsers } from "~/classes/functions/user";
import type { db } from "~/drizzle/db"; import type { db } from "~/drizzle/db";
export async function fetchTimeline<T extends UserType | Status | Notification>( export async function fetchTimeline<T extends UserType | Status | Notification>(