All files / src/server/api result-items.ts

100% Statements 5/5
100% Branches 4/4
100% Functions 4/4
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21          24x     24x       2x 2x       22x      
import type { SortResultItem } from "@/types";
import type { Database } from "@/lib/db";
import { SortResultItemRepository } from "@/server/repositories/implementations/SortResultItemRepository";
 
export class ResultItemController {
  constructor(private resultItemRepo: SortResultItemRepository) {}
 
  static fromDb(db: Database): ResultItemController {
    return new ResultItemController(new SortResultItemRepository(db));
  }
 
  async getByIdForResult(resultItemId: string, resultId: string): Promise<SortResultItem | null> {
    const item = await this.resultItemRepo.findById(resultItemId);
    return item && item.sortResultId === resultId ? item : null;
  }
 
  async listResultItems(resultId: string): Promise<SortResultItem[]> {
    return this.resultItemRepo.findByResult(resultId);
  }
}