lint
All checks were successful
backend-action / build-image (push) Successful in 1m9s

This commit is contained in:
2024-05-16 17:26:27 +07:00
parent 5c4abf24bb
commit c1a019a461
13 changed files with 246 additions and 63 deletions

View File

@@ -18,16 +18,16 @@ export async function createUploadImageUrl(
objectName: string,
contentType: string,
) {
let policy = mc.newPostPolicy();
const policy = mc.newPostPolicy();
policy.setKey(objectName);
policy.setBucket(Config.bucketName);
let expires = new Date();
const expires = new Date();
expires.setSeconds(30 * 60);
policy.setExpires(expires);
policy.setContentType(contentType);
policy.setContentDisposition(`attachment; filename="${objectName}"`);
policy.setContentLengthRange(1, 3 * 1024 * 1024);
let rs = await mc.presignedPostPolicy(policy);
const rs = await mc.presignedPostPolicy(policy);
return rs;
}

View File

@@ -42,7 +42,7 @@ export const createContext = async (opts: CreateHTTPContextOptions) => {
const bearerToken = authorizationHeader.split(" ")[1];
const phone = await verifyToken(bearerToken);
if (phone !== null) {
let user = await db.query.user.findFirst({
const user = await db.query.user.findFirst({
where: (user, { eq }) => eq(user.phone, phone),
});
return {
@@ -59,7 +59,7 @@ export const createContext = async (opts: CreateHTTPContextOptions) => {
async function verifyToken(token: string): Promise<string | null> {
try {
let rs = await new Promise((resolve, reject) => {
const rs = await new Promise((resolve, reject) => {
jwt.verify(token, Config.jwt_secret, (err, decoded) => {
if (err) {
reject(err);
@@ -68,7 +68,7 @@ async function verifyToken(token: string): Promise<string | null> {
}
});
});
let data = z
const data = z
.object({
phone: z.string(),
})

View File

@@ -1,13 +1,6 @@
import { router, publicProcedure, protectedProcedure } from "./trpc";
import { db } from "./db";
import {
imageToUser,
opinion,
province,
user,
userOpinion,
zone,
} from "./schema";
import { imageToUser, opinion, user, userOpinion, zone } from "./schema";
import { createInsertSchema } from "drizzle-zod";
import { z } from "zod";
import { SQL, and, count, eq, inArray, sql } from "drizzle-orm";
@@ -125,11 +118,11 @@ async function getAllUserCount(
zoneId?: number,
provinceId?: number,
) {
let zoneIds: number[] = await getZone(provinceId);
const zoneIds: number[] = await getZone(provinceId);
if (provinceId && zoneIds.length === 0) {
return [];
}
let conditions: SQL[] = [];
const conditions: SQL[] = [];
if (group !== undefined) {
conditions.push(eq(user.group, group));
}
@@ -154,11 +147,11 @@ async function getAllUser(
zoneId?: number,
provinceId?: number,
) {
let zoneIds: number[] = await getZone(provinceId);
const zoneIds: number[] = await getZone(provinceId);
if (provinceId && zoneIds.length === 0) {
return [];
}
let users = await db.query.user.findMany({
const users = await db.query.user.findMany({
with: {
group: true,
opinions: {
@@ -172,7 +165,7 @@ async function getAllUser(
offset,
orderBy: sql`random()`,
where: (user, { eq, and }) => {
let conditions: SQL[] = [];
const conditions: SQL[] = [];
if (group !== undefined) {
conditions.push(eq(user.group, group));
}
@@ -195,7 +188,7 @@ async function getAllUser(
}
async function getUser(userId: number, showPhone: boolean) {
let user = await db.query.user.findFirst({
const user = await db.query.user.findFirst({
where: (user, { eq }) => eq(user.id, userId),
with: {
group: true,
@@ -224,10 +217,10 @@ async function createUser(
opinions: OpinionInsertSchema,
) {
try {
let result = (
const result = (
await db.insert(user).values(newUser).returning({ id: user.id })
)[0];
for (let op of opinions) {
for (const op of opinions) {
await db.insert(userOpinion).values({ ...op, userId: result.id });
}
return { token: createJWT(newUser.phone) };
@@ -248,7 +241,7 @@ async function updateUser(userId: number, update: UserUpdateSchema) {
}
async function login(cid: string, phone: string) {
let user = await db.query.user.findFirst({
const user = await db.query.user.findFirst({
where: (user, { and, eq }) => and(eq(user.cid, cid), eq(user.phone, phone)),
});
if (user === undefined) {
@@ -267,7 +260,7 @@ async function changeOpinion(
opinionChoice: OpinionInsertSchema[0]["choice"],
) {
try {
let thisOpinion = await db
const thisOpinion = await db
.select()
.from(opinion)
.where(eq(opinion.id, opinionId))
@@ -328,11 +321,11 @@ async function requestChangeImage(
});
}
// Create a unique image name
let tryCount = 0;
const tryCount = 0;
let objectName: string | null = null;
while (tryCount < 3) {
let imageName = `${generateRandomString()}.${extension}`;
let ok = await db
const imageName = `${generateRandomString()}.${extension}`;
const ok = await db
.select({ value: count(user.image) })
.from(user)
.where(eq(user.image, imageName))
@@ -356,14 +349,14 @@ async function requestChangeImage(
target: [imageToUser.userId],
set: { imageName: objectName },
});
let request = await createUploadImageUrl(mc, objectName, contentType);
const request = await createUploadImageUrl(mc, objectName, contentType);
request.postURL = Config.minioPublicBucketEndpoint;
return request;
}
async function confirmChangeImage(userId: number, oldImage: string | null) {
const mc = createClient();
let rs = await db
const rs = await db
.select({ imageName: imageToUser.imageName })
.from(imageToUser)
.where(eq(imageToUser.userId, userId));
@@ -373,7 +366,7 @@ async function confirmChangeImage(userId: number, oldImage: string | null) {
code: "BAD_REQUEST",
});
}
let imageName = rs[0].imageName;
const imageName = rs[0].imageName;
const isImageExist = await mc
.statObject(Config.bucketName, imageName)
.then(() => true)
@@ -384,7 +377,7 @@ async function confirmChangeImage(userId: number, oldImage: string | null) {
code: "BAD_REQUEST",
});
}
const promises: Promise<any>[] = [];
const promises: Promise<void>[] = [];
if (oldImage) {
promises.push(mc.removeObject(Config.bucketName, oldImage).catch(() => {}));
}