Skip to content

Commit

Permalink
updated types to generics
Browse files Browse the repository at this point in the history
  • Loading branch information
filvecchiato committed Aug 16, 2024
1 parent d1c4034 commit cf77df3
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 65 deletions.
58 changes: 7 additions & 51 deletions src/controllers/blocks/BlocksController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ import type client from 'prom-client';
import { validateBoolean } from '../../middleware/validate';
import { BlocksService } from '../../services';
import { ControllerOptions } from '../../types/chains-config';
import { INumberParam, IRangeQueryParam } from '../../types/requests';
import { IBlockQueryParams, INumberParam, IRangeQueryParam, IRequestHandlerWithMetrics } from '../../types/requests';
import { IBlock } from '../../types/responses';
import { PromiseQueue } from '../../util/PromiseQueue';
import AbstractController from '../AbstractController';
Expand Down Expand Up @@ -125,25 +125,7 @@ export default class BlocksController extends AbstractController<BlocksService>
* @param _req Express Request
* @param res Express Response
*/
private getLatestBlock: RequestHandler<
unknown,
unknown,
unknown,
{
finalized?: string;
eventDocs?: string;
extrinsicDocs?: string;
noFees?: string;
decodedXcmMsgs?: string;
paraId?: string;
},
{
metrics?: {
registry: Record<string, client.Metric>;
timer: () => number;
};
}
> = async (
private getLatestBlock: IRequestHandlerWithMetrics<unknown, IBlockQueryParams> = async (
{ query: { eventDocs, extrinsicDocs, finalized, noFees, decodedXcmMsgs, paraId }, method, route },
res,
) => {
Expand Down Expand Up @@ -221,25 +203,7 @@ export default class BlocksController extends AbstractController<BlocksService>
* @param req Express Request
* @param res Express Response
*/
private getBlockById: RequestHandler<
INumberParam,
unknown,
unknown,
{
eventDocs?: string;
extrinsicDocs?: string;
noFees?: string;
finalizedKey?: string;
decodedXcmMsgs?: string;
paraId?: string;
},
{
metrics?: {
registry: Record<string, client.Metric>;
timer: () => number;
};
}
> = async (
private getBlockById: IRequestHandlerWithMetrics<INumberParam, IBlockQueryParams> = async (
{
params: { number },
query: { eventDocs, extrinsicDocs, noFees, finalizedKey, decodedXcmMsgs, paraId },
Expand Down Expand Up @@ -341,18 +305,10 @@ export default class BlocksController extends AbstractController<BlocksService>
* @param req Express Request
* @param res Express Response
*/
private getBlocks: RequestHandler<
unknown,
unknown,
unknown,
IRangeQueryParam,
{
metrics?: {
registry: Record<string, client.Metric>;
timer: () => number;
};
}
> = async ({ query: { range, eventDocs, extrinsicDocs, noFees }, method, route }, res): Promise<void> => {
private getBlocks: IRequestHandlerWithMetrics<unknown, IRangeQueryParam> = async (
{ query: { range, eventDocs, extrinsicDocs, noFees }, method, route },
res,
): Promise<void> => {
if (!range) throw new BadRequest('range query parameter must be inputted.');

// We set a max range to 500 blocks.
Expand Down
19 changes: 5 additions & 14 deletions src/controllers/blocks/BlocksRawExtrinsicsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,11 @@
// along with this program. If not, see <http://www.gnu.org/licenses/>.

import { ApiPromise } from '@polkadot/api';
import { RequestHandler } from 'express';
import client from 'prom-client';

import { BlocksService } from '../../services';
import { ControllerOptions } from '../../types/chains-config';
import { INumberParam } from '../../types/requests';
import { INumberParam, IRequestHandlerWithMetrics } from '../../types/requests';
import AbstractController from '../AbstractController';

export default class BlocksRawExtrinsicsController extends AbstractController<BlocksService> {
Expand All @@ -42,18 +41,10 @@ export default class BlocksRawExtrinsicsController extends AbstractController<Bl
* @param _req Express Request
* @param res Express Response
*/
private getBlockRawExtrinsics: RequestHandler<
INumberParam,
unknown,
unknown,
unknown,
{
metrics?: {
registry: Record<string, client.Metric>;
timer: () => number;
};
}
> = async ({ params: { blockId }, method, route }, res): Promise<void> => {
private getBlockRawExtrinsics: IRequestHandlerWithMetrics<INumberParam> = async (
{ params: { blockId }, method, route },
res,
): Promise<void> => {
const hash = await this.getHashForBlock(blockId);
const rawBlock = await this.service.fetchBlockRaw(hash);
BlocksRawExtrinsicsController.sanitizedSend(res, rawBlock);
Expand Down
20 changes: 20 additions & 0 deletions src/types/requests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import { RequestHandler } from 'express';
import { ParamsDictionary, Query } from 'express-serve-static-core';
import type client from 'prom-client';

/**
* Body for RequestHandlerTx. In other words, the body of a POST route that sends an encoded transaction.
Expand Down Expand Up @@ -96,3 +97,22 @@ export interface IConvertQueryParams extends Query {
prefix: string;
publicKey: string;
}

export interface IMetrics {
metrics?: {
registry: Record<string, client.Metric>;
timer: () => number;
};
}

export interface IBlockQueryParams extends Query {
finalized?: string;
eventDocs?: string;
extrinsicDocs?: string;
noFees?: string;
decodedXcmMsgs?: string;
paraId?: string;
}

export interface IRequestHandlerWithMetrics<T = unknown, P = unknown>
extends RequestHandler<T, unknown, unknown, P, IMetrics> {}

0 comments on commit cf77df3

Please sign in to comment.