42 lines
918 B
TypeScript
42 lines
918 B
TypeScript
import { db } from "@/db/db";
|
|
import {
|
|
checkpointTable,
|
|
} from "@/db/schema";
|
|
import { auth } from "@clerk/nextjs";
|
|
import { and, desc, eq, isNull } from "drizzle-orm";
|
|
|
|
export async function getAllUserCheckpoints() {
|
|
const { userId, orgId } = await auth();
|
|
|
|
if (!userId) {
|
|
return null;
|
|
}
|
|
|
|
const checkpoints = await db.query.checkpointTable.findMany({
|
|
with: {
|
|
user: {
|
|
columns: {
|
|
name: true,
|
|
},
|
|
},
|
|
},
|
|
columns: {
|
|
id: true,
|
|
updated_at: true,
|
|
model_name: true,
|
|
civitai_url: true,
|
|
civitai_model_response: true,
|
|
is_public: true,
|
|
upload_type: true,
|
|
status: true,
|
|
},
|
|
orderBy: desc(checkpointTable.updated_at),
|
|
where:
|
|
orgId != undefined
|
|
? eq(checkpointTable.org_id, orgId)
|
|
: and(eq(checkpointTable.user_id, userId), isNull(checkpointTable.org_id)),
|
|
});
|
|
|
|
return checkpoints;
|
|
}
|