@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
46 lines (36 loc) • 1.58 kB
text/typescript
import { customIdentity, customPickBy } from '../../utils';
import { GlobalRequestOptions } from '../main/main.request.type';
import { SearchByIdRequestParams, SearchByIdRequestResult } from './search-by-id.request.type';
import { buildSearchByIdRequestSchema } from './search-by-id.schema';
export async function buildSearchByIdRequest(this: GlobalRequestOptions, params: SearchByIdRequestParams): Promise<SearchByIdRequestResult> {
const validatedParams = await buildSearchByIdRequestSchema
.validate(
customPickBy({
...params,
indexName: params.indexName || this?.indexName || process.env.GLOBAL_DEFAULT_INDEX_NAME,
platformName: params.platformName || this?.platformName,
APIKey: params.APIKey || this?.APIKey,
userCountry: params.userCountry || this?.userCountry,
userId: params.userId || this?.userId,
userIp: params.userIp || this?.userIp,
sessionId: params.sessionId || this?.sessionId,
sessionIdGenerator: params.sessionIdGenerator || this?.sessionIdGenerator,
}, customIdentity)
);
const {
indexName,
platformName,
APIKey,
id,
...restOfOptions
} = validatedParams;
return {
method: 'GET',
url: `${process.env.API_BASE_URL}/projects/${platformName}/indices/${indexName}/documents/${id}`,
params: {
apikey: APIKey,
...restOfOptions
},
headers: {},
}
}