45 lines
1.0 KiB
TypeScript
45 lines
1.0 KiB
TypeScript
import { RecordModel } from "pocketbase";
|
|
import { managePb404 } from "../../utils/pbTools";
|
|
import pbClient from "../pbClient";
|
|
|
|
export interface StatisticsPerWeekRecordModel extends RecordModel {
|
|
week: string;
|
|
total_count: number;
|
|
failed_count: number;
|
|
success_count: number;
|
|
success_rate: number;
|
|
duration: number;
|
|
}
|
|
|
|
export interface StatisticsPerProjRecordModel extends RecordModel {
|
|
week: string;
|
|
name: string;
|
|
duration: number;
|
|
ref: string;
|
|
}
|
|
|
|
const getFullStatisticsByWeek = (week: string) => {
|
|
return managePb404<StatisticsPerWeekRecordModel>(
|
|
async () =>
|
|
await pbClient
|
|
.collection("statisticsPerWeek")
|
|
.getFirstListItem(`week="${week}"`)
|
|
);
|
|
};
|
|
|
|
const getProjStatisticsByWeek = (week: string) => {
|
|
return managePb404<StatisticsPerProjRecordModel[]>(
|
|
async () =>
|
|
await pbClient
|
|
.collection("statisticsPerProj")
|
|
.getFullList({ filter: `week="${week}"` })
|
|
);
|
|
};
|
|
|
|
const view = {
|
|
getFullStatisticsByWeek,
|
|
getProjStatisticsByWeek,
|
|
};
|
|
|
|
export default view;
|