import { Paginate, PaginationParams } from "@infinity-beyond/modules/pagination.ts";
export const LedgerTableData = async (request: Request, ledger: Ledger.Ledger<any>) => {
const { page, page_size } = PaginationParams(request);
if(!request.state.user?.has_permission(`VIEW_${ledger.name.toUpperCase()}`)) throw new Deno.errors.PermissionDenied();
const entries = await ledger.History(page_size, page);
const total_consumptions = await ledger.meta.get('total_consumptions') as number;
const total_additions = await ledger.meta.get('total_additions') as number;
const total_entries = total_consumptions + total_additions;
const { meta } = Paginate(request, entries, total_entries);
return { entries, meta, total_entries};
}