Skip to content

Commit

Permalink
deduplicate column selection
Browse files Browse the repository at this point in the history
  • Loading branch information
oXtxNt9U committed Feb 13, 2025
1 parent cce4411 commit 2e0da36
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 30 deletions.
32 changes: 20 additions & 12 deletions packages/api-http/source/controllers/controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,11 @@ export class Controller extends AbstractController {
protected async getReceipts(ids: string[], full = false): Promise<Record<string, Models.Receipt>> {
const receiptRepository = this.receiptRepositoryFactory();

let columns = [
"Receipt.id",
"Receipt.success",
"Receipt.gasUsed",
"Receipt.gasRefunded",
"Receipt.deployedContractAddress",
];
if (full) {
columns = [...columns, "Receipt.output", "Receipt.logs"];
}

const receipts = await receiptRepository.createQueryBuilder().select(columns).whereInIds(ids).getMany();
const receipts = await receiptRepository
.createQueryBuilder("receipt")
.select(this.getReceiptColumns(full))
.whereInIds(ids)
.getMany();

return receipts.reduce((accumulator, current) => {
accumulator[current.id] = current;
Expand Down Expand Up @@ -169,4 +162,19 @@ export class Controller extends AbstractController {
// NOTE: This assumes all block ids are sha256 and never a valid number below this threshold.
return !isNaN(asHeight) && asHeight <= Number.MAX_SAFE_INTEGER ? { height: asHeight } : { id: idOrHeight };
}

protected getReceiptColumns(fullReceipt?: boolean): string[] {
let columns = [
"receipt.id",
"receipt.success",
"receipt.gasUsed",
"receipt.gasRefunded",
"receipt.deployedContractAddress",
];
if (fullReceipt) {
columns = [...columns, "receipt.output", "receipt.logs"];
}

return columns;
}
}
21 changes: 3 additions & 18 deletions packages/api-http/source/controllers/receipts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export class ReceiptsController extends Controller {

const query = this.receiptRepositoryFactory()
.createQueryBuilder("receipt")
.select(this.#getColumns(request.query.fullReceipt))
.select(this.getReceiptColumns(request.query.fullReceipt))
.innerJoin(Models.Transaction, "transaction", "receipt.id = transaction.id");

if (criteria.txHash) {
Expand Down Expand Up @@ -60,7 +60,7 @@ export class ReceiptsController extends Controller {
public async show(request: Hapi.Request) {
const receipt = await this.receiptRepositoryFactory()
.createQueryBuilder("receipt")
.select(this.#getColumns(request.query.fullReceipt))
.select(this.getReceiptColumns(request.query.fullReceipt))
.where("id = :id", { id: request.params.id })
.getOne();

Expand All @@ -77,7 +77,7 @@ export class ReceiptsController extends Controller {

const query = this.receiptRepositoryFactory()
.createQueryBuilder("receipt")
.select(this.#getColumns(request.query.fullReceipt))
.select(this.getReceiptColumns(request.query.fullReceipt))
.innerJoin(Models.Transaction, "transaction", "receipt.id = transaction.id")
.where("receipt.deployedContractAddress IS NOT NULL");

Expand Down Expand Up @@ -116,19 +116,4 @@ export class ReceiptsController extends Controller {
estimateTotalCount: false,
};
}

#getColumns(fullReceipt?: boolean): string[] {
let columns = [
"receipt.id",
"receipt.success",
"receipt.gasUsed",
"receipt.gasRefunded",
"receipt.deployedContractAddress",
];
if (fullReceipt) {
columns = [...columns, "receipt.output", "receipt.logs"];
}

return columns;
}
}

0 comments on commit 2e0da36

Please sign in to comment.