This commit is contained in:
@@ -428,18 +428,34 @@ export class LauncherService {
|
||||
}
|
||||
|
||||
listBuildJobs(query: ListLauncherBuildJobsQuery = {}) {
|
||||
const paged = Boolean(query.page || query.limit || query.target || query.since);
|
||||
const page = toPositiveInt(query.page, 1);
|
||||
const limit = Math.min(toPositiveInt(query.limit, 30), 100);
|
||||
const since = query.since ? new Date(query.since) : null;
|
||||
const where = {
|
||||
...(query.target ? { target: query.target } : {}),
|
||||
...(since && Number.isFinite(since.getTime()) ? { createdAt: { gte: since } } : {}),
|
||||
};
|
||||
|
||||
return this.prisma.launcherBuildJob.findMany({
|
||||
where: {
|
||||
...(query.target ? { target: query.target } : {}),
|
||||
...(since && Number.isFinite(since.getTime()) ? { createdAt: { gte: since } } : {}),
|
||||
},
|
||||
orderBy: { createdAt: 'desc' },
|
||||
skip: (page - 1) * limit,
|
||||
take: limit,
|
||||
if (!paged) {
|
||||
return this.prisma.launcherBuildJob.findMany({
|
||||
orderBy: { createdAt: 'desc' },
|
||||
take: 30,
|
||||
});
|
||||
}
|
||||
|
||||
return this.prisma.$transaction(async (tx) => {
|
||||
const [jobs, total] = await Promise.all([
|
||||
tx.launcherBuildJob.findMany({
|
||||
where,
|
||||
orderBy: { createdAt: 'desc' },
|
||||
skip: (page - 1) * limit,
|
||||
take: limit,
|
||||
}),
|
||||
tx.launcherBuildJob.count({ where }),
|
||||
]);
|
||||
|
||||
return { jobs, total, page, limit };
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user