Hello from MCP server

List Files | Just Commands | Repo | Logs

← back |
import { getDb } from "@/dataAccess/getDb";

export interface JobCount {
  name: string;
  refId: string;
  count: number;
}

/**
 * Count job occurrences from service_call logs
 *
 * @returns Array of job counts with name, refId, and count
 */
export async function countJobs(): Promise<JobCount[]> {
  const db = await getDb();

  const query = `SELECT log_data FROM logs WHERE log_type = ?`;
  const result = await db.dbConn.query(query, ['service_call']);

  const jobCounts: Map<string, JobCount> = new Map();

  for (const row of result.values || []) {
    const logData = JSON.parse(row.log_data || '{}');
    const jobs = logData.jobs || [];

    for (const job of jobs) {
      const name = job.problem?.name || job.title || 'Unknown';
      const refId = job.problem?.refId || '';
      const key = `${refId}|${name}`;

      if (jobCounts.has(key)) {
        jobCounts.get(key)!.count++;
      } else {
        jobCounts.set(key, { name, refId, count: 1 });
      }
    }
  }

  return Array.from(jobCounts.values()).sort((a, b) => b.count - a.count);
}