35 lines
788 B
TypeScript
35 lines
788 B
TypeScript
import db from "../../db";
|
|
import { error } from "elysia";
|
|
import { and, desc, eq } from "drizzle-orm";
|
|
import { sessionsTable } from "../../db/schema";
|
|
import type { AuthContext } from "../../middlewares/auth";
|
|
|
|
async function getSessions(
|
|
auth: AuthContext,
|
|
query?: {
|
|
limit?: number;
|
|
}
|
|
) {
|
|
try {
|
|
const sessions = await db.query.sessionsTable.findMany({
|
|
where: and(
|
|
eq(sessionsTable.ownerId, auth.userId),
|
|
eq(sessionsTable.companyId, auth.companyId)
|
|
),
|
|
with: {
|
|
client: true,
|
|
app: true,
|
|
server: true,
|
|
},
|
|
limit: query?.limit,
|
|
orderBy: desc(sessionsTable.createdAt),
|
|
});
|
|
|
|
return sessions;
|
|
} catch (err) {
|
|
return error(500, "Internal Server Error");
|
|
}
|
|
}
|
|
|
|
export default getSessions;
|