Skip to content

Commit

Permalink
update types
Browse files Browse the repository at this point in the history
  • Loading branch information
alexwizp committed Nov 16, 2020
1 parent 55bdbbd commit bbf8d10
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,14 @@
*/
import { DefaultSearchCapabilities } from './default_search_capabilities';
import { ReqFacade } from './strategies/abstract_search_strategy';
import { VisPayload } from '../../../common/types';

describe('DefaultSearchCapabilities', () => {
let defaultSearchCapabilities: DefaultSearchCapabilities;
let req: ReqFacade;
let req: ReqFacade<VisPayload>;

beforeEach(() => {
req = {} as ReqFacade;
req = {} as ReqFacade<VisPayload>;
defaultSearchCapabilities = new DefaultSearchCapabilities(req);
});

Expand Down Expand Up @@ -52,7 +53,7 @@ describe('DefaultSearchCapabilities', () => {
timezone: 'UTC',
},
},
} as unknown) as ReqFacade;
} as unknown) as ReqFacade<VisPayload>;

expect(defaultSearchCapabilities.searchTimezone).toEqual('UTC');
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,17 @@ import {
} from '../vis_data/helpers/unit_to_seconds';
import { RESTRICTIONS_KEYS } from '../../../common/ui_restrictions';
import { ReqFacade } from './strategies/abstract_search_strategy';
import { VisPayload } from '../../../common/types';

const getTimezoneFromRequest = (request: ReqFacade) => {
const getTimezoneFromRequest = (request: ReqFacade<VisPayload>) => {
return request.payload.timerange.timezone;
};

export class DefaultSearchCapabilities {
constructor(public request: ReqFacade, public fieldsCapabilities: Record<string, any> = {}) {}
constructor(
public request: ReqFacade<VisPayload>,
public fieldsCapabilities: Record<string, any> = {}
) {}

public get defaultTimeInterval() {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import { VisPayload } from '../../../../common/types';
*
* This will be replaced by standard KibanaRequest and RequestContext objects in a later version.
*/
export interface ReqFacade<T = VisPayload> extends FakeRequest {
export interface ReqFacade<T = unknown> extends FakeRequest {
requestContext: RequestHandlerContext;
framework: Framework;
payload: T;
Expand All @@ -47,7 +47,7 @@ export interface ReqFacade<T = VisPayload> extends FakeRequest {
}

export abstract class AbstractSearchStrategy {
async search(req: ReqFacade, bodies: any[], indexType?: string) {
async search(req: ReqFacade<VisPayload>, bodies: any[], indexType?: string) {
const requests: any[] = [];
const { sessionId } = req.payload;

Expand All @@ -71,19 +71,23 @@ export abstract class AbstractSearchStrategy {
return Promise.all(requests);
}

async getFieldsForWildcard(req: ReqFacade, indexPattern: string, capabilities?: unknown) {
checkForViability(
req: ReqFacade<VisPayload>,
indexPattern: string
): Promise<{ isViable: boolean; capabilities: unknown }> {
throw new TypeError('Must override method');
}

async getFieldsForWildcard<TPayload = unknown>(
req: ReqFacade<TPayload>,
indexPattern: string,
capabilities?: unknown
) {
const { indexPatternsService } = req.pre;

return await indexPatternsService!.getFieldsForWildcard({
pattern: indexPattern,
fieldCapsOptions: { allow_no_indices: true },
});
}

checkForViability(
req: ReqFacade,
indexPattern: string
): Promise<{ isViable: boolean; capabilities: unknown }> {
throw new TypeError('Must override method');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@

import { AbstractSearchStrategy, ReqFacade } from './abstract_search_strategy';
import { DefaultSearchCapabilities } from '../default_search_capabilities';
import { VisPayload } from '../../../../common/types';

export class DefaultSearchStrategy extends AbstractSearchStrategy {
name = 'default';

checkForViability(req: ReqFacade) {
checkForViability(req: ReqFacade<VisPayload>) {
return Promise.resolve({
isViable: true,
capabilities: new DefaultSearchCapabilities(req),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import { Unit } from '@elastic/datemath';
import { RollupSearchCapabilities } from './rollup_search_capabilities';

import { ReqFacade } from '../../../../../src/plugins/vis_type_timeseries/server';
import { ReqFacade, VisPayload } from '../../../../../src/plugins/vis_type_timeseries/server';

describe('Rollup Search Capabilities', () => {
const testTimeZone = 'time_zone';
const testInterval = '10s';
const rollupIndex = 'rollupIndex';
const request = ({} as unknown) as ReqFacade;
const request = ({} as unknown) as ReqFacade<VisPayload>;

let fieldsCapabilities: Record<string, any>;
let rollupSearchCaps: RollupSearchCapabilities;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,18 @@ import { leastCommonInterval, isCalendarInterval } from './lib/interval_helper';
import {
ReqFacade,
DefaultSearchCapabilities,
VisPayload,
} from '../../../../../src/plugins/vis_type_timeseries/server';

export class RollupSearchCapabilities extends DefaultSearchCapabilities {
rollupIndex: string;
availableMetrics: Record<string, any>;

constructor(req: ReqFacade, fieldsCapabilities: Record<string, any>, rollupIndex: string) {
constructor(
req: ReqFacade<VisPayload>,
fieldsCapabilities: Record<string, any>,
rollupIndex: string
) {
super(req, fieldsCapabilities);

this.rollupIndex = rollupIndex;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
import { RollupSearchStrategy } from './rollup_search_strategy';
import type { ReqFacade } from '../../../../../src/plugins/vis_type_timeseries/server';
import type { ReqFacade, VisPayload } from '../../../../../src/plugins/vis_type_timeseries/server';

jest.mock('../../../../../src/plugins/vis_type_timeseries/server', () => {
const actual = jest.requireActual('../../../../../src/plugins/vis_type_timeseries/server');
Expand Down Expand Up @@ -45,7 +45,7 @@ describe('Rollup Search Strategy', () => {
},
},
},
} as unknown) as ReqFacade;
} as unknown) as ReqFacade<VisPayload>;

const indexPattern = 'indexPattern';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { keyBy, isString } from 'lodash';
import {
AbstractSearchStrategy,
ReqFacade,
VisPayload,
} from '../../../../../src/plugins/vis_type_timeseries/server';

import {
Expand All @@ -24,7 +25,7 @@ const isIndexPatternValid = (indexPattern: string) =>
export class RollupSearchStrategy extends AbstractSearchStrategy {
name = 'rollup';

async search(req: ReqFacade, bodies: any[]) {
async search(req: ReqFacade<VisPayload>, bodies: any[]) {
return super.search(req, bodies, 'rollup');
}

Expand All @@ -37,7 +38,7 @@ export class RollupSearchStrategy extends AbstractSearchStrategy {
.catch(() => Promise.resolve({}));
}

async checkForViability(req: ReqFacade, indexPattern: string) {
async checkForViability(req: ReqFacade<VisPayload>, indexPattern: string) {
let isViable = false;
let capabilities = null;

Expand All @@ -61,8 +62,8 @@ export class RollupSearchStrategy extends AbstractSearchStrategy {
};
}

async getFieldsForWildcard(
req: ReqFacade,
async getFieldsForWildcard<TPayload = unknown>(
req: ReqFacade<TPayload>,
indexPattern: string,
{
fieldsCapabilities,
Expand Down

0 comments on commit bbf8d10

Please sign in to comment.