Skip to content

Commit 3a0366f

Browse files
fix(api): wait for Algolia meeting operations
1 parent 39f29b2 commit 3a0366f

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

lib/api/algolia.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
SaveObjectResponse,
44
SetSettingsResponse,
55
} from '@algolia/client-search';
6+
import { WaitablePromise } from '@algolia/client-common';
67
import algoliasearch from 'algoliasearch';
78

89
import clone from 'lib/utils/clone';
@@ -15,28 +16,26 @@ export const client = algoliasearch(algoliaId, algoliaKey);
1516
export function updateFilterableAttrs(
1617
indexId: string,
1718
attrs: string[]
18-
): Promise<SetSettingsResponse> {
19+
): WaitablePromise<SetSettingsResponse> {
1920
const idx = client.initIndex(`${process.env.APP_ENV as string}-${indexId}`);
2021
const attributesForFaceting = attrs.map((attr) => `filterOnly(${attr})`);
21-
return (idx.setSettings({ attributesForFaceting }) as unknown) as Promise<
22-
SetSettingsResponse
23-
>;
22+
return idx.setSettings({ attributesForFaceting });
2423
}
2524

2625
export function deleteObj(
2726
indexId: string,
2827
objId: string
29-
): Promise<DeleteResponse> {
28+
): WaitablePromise<DeleteResponse> {
3029
const idx = client.initIndex(`${process.env.APP_ENV as string}-${indexId}`);
31-
return (idx.deleteObject(objId) as unknown) as Promise<DeleteResponse>;
30+
return idx.deleteObject(objId);
3231
}
3332

3433
export default function index<T extends { toSearchHit: () => object }>(
3534
indexId: string,
3635
obj: T,
3736
tags?: string[]
38-
): Promise<SaveObjectResponse> {
37+
): WaitablePromise<SaveObjectResponse> {
3938
const idx = client.initIndex(`${process.env.APP_ENV as string}-${indexId}`);
4039
const idxObj = clone({ ...obj.toSearchHit(), _tags: tags });
41-
return (idx.saveObject(idxObj) as unknown) as Promise<SaveObjectResponse>;
40+
return idx.saveObject(idxObj);
4241
}

lib/api/create/meeting-search-obj.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import index from 'lib/api/algolia';
77
export default async function createMeetingSearchObj(
88
meeting: Meeting
99
): Promise<void> {
10-
const [err] = await to(index('meetings', meeting));
10+
const [err] = await to(index('meetings', meeting).wait());
1111
if (err) {
1212
const msg = `${err.name} saving meeting (${meeting.toString()}) to Algolia`;
1313
throw new APIError(`${msg}: ${err.message}`, 500);

lib/api/delete/meeting-search-obj.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { deleteObj } from 'lib/api/algolia';
66
export default async function deleteMeetingSearchObj(
77
meetingId: string
88
): Promise<void> {
9-
const [err] = await to(deleteObj('meetings', meetingId));
9+
const [err] = await to(deleteObj('meetings', meetingId).wait());
1010
if (err) {
1111
const msg = `${err.name} deleting meeting (${meetingId}) from Algolia`;
1212
throw new APIError(`${msg}: ${err.message}`, 500);

lib/api/update/meeting-search-obj.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import index from 'lib/api/algolia';
77
export default async function updateMeetingSearchObj(
88
meeting: Meeting
99
): Promise<void> {
10-
const [e] = await to(index('meetings', meeting));
10+
const [e] = await to(index('meetings', meeting).wait());
1111
if (e) {
1212
const msg = `${e.name} updating meeting (${meeting.toString()}) in Algolia`;
1313
throw new APIError(`${msg}: ${e.message}`, 500);

0 commit comments

Comments
 (0)