All files / request/indexing indexing.request.ts

100% Statements 3/3
100% Branches 7/7
100% Functions 1/1
100% Lines 3/3

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 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44                    19x                               10x       10x                          
import { LablebDocument } from '../../core/lableb-client/lableb-client.type';
import { customIdentity, customPickBy } from '../../utils';
import { GlobalRequestOptions } from '../main/main.request.type';
import { buildIndexingRequestSchema } from './indexing.schema';
import { IndexingRequestParams, IndexingRequestResult } from './indexing.request.type';
 
 
export async function buildIndexingRequest(this: GlobalRequestOptions, params: IndexingRequestParams): Promise<IndexingRequestResult> {
 
 
    const validatedParams = await buildIndexingRequestSchema
        .validate(
            customPickBy({
                indexName: params.indexName || this?.indexName || process.env.GLOBAL_DEFAULT_INDEX_NAME,
                platformName: params.platformName || this?.platformName,
                indexingAPIKey: params.indexingAPIKey || this?.indexingAPIKey,
                documents: params.documents,
            }, customIdentity)
        );
 
 
    const {
        indexName,
        platformName,
        indexingAPIKey,
        documents,
    } = validatedParams;
 
 
 
    return {
        method: 'POST',
        url: `${process.env.API_BASE_URL}/projects/${platformName}/indices/${indexName}/documents`,
        params: customPickBy(
            {
                apikey: indexingAPIKey,
            },
            customIdentity
        ),
        headers: {},
        body: documents as LablebDocument[],
    }
}