mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-10 04:40:46 -05:00
54 lines
1.2 KiB
TypeScript
54 lines
1.2 KiB
TypeScript
import { sql } from "~/db/sql";
|
|
import type { UserSubmittedImage } from "~/db/types";
|
|
import type { ImageUploadType } from "../upload-types";
|
|
|
|
const addImgStm = sql.prepare(/* sql */ `
|
|
insert into "UnvalidatedUserSubmittedImage"
|
|
("submitterUserId", "url", "validatedAt")
|
|
values
|
|
(@submitterUserId, @url, @validatedAt)
|
|
returning *
|
|
`);
|
|
|
|
const updateTeamAvatarStm = sql.prepare(/* sql */ `
|
|
update "AllTeam"
|
|
set "avatarImgId" = @avatarImgId
|
|
where "id" = @teamId
|
|
`);
|
|
|
|
const updateTeamBannerStm = sql.prepare(/* sql */ `
|
|
update "AllTeam"
|
|
set "bannerImgId" = @bannerImgId
|
|
where "id" = @teamId
|
|
`);
|
|
|
|
export const addNewImage = sql.transaction(
|
|
({
|
|
submitterUserId,
|
|
url,
|
|
validatedAt,
|
|
teamId,
|
|
type,
|
|
}: {
|
|
submitterUserId: number;
|
|
url: string;
|
|
validatedAt: number | null;
|
|
teamId: number;
|
|
type: ImageUploadType;
|
|
}) => {
|
|
const img = addImgStm.get({
|
|
submitterUserId,
|
|
url,
|
|
validatedAt,
|
|
}) as UserSubmittedImage;
|
|
|
|
if (type === "team-pfp") {
|
|
updateTeamAvatarStm.run({ avatarImgId: img.id, teamId });
|
|
} else if (type === "team-banner") {
|
|
updateTeamBannerStm.run({ bannerImgId: img.id, teamId });
|
|
}
|
|
|
|
return img;
|
|
}
|
|
);
|