Skip to content

Commit fe19d5a

Browse files
leomp12claude
andcommitted
fix(firebase): Handle 404 errors when fetching fresh API docs in event processing
- Add try-catch block around API call in fetchFreshApiDoc - Return false for 404 errors to skip processing deleted resources - Improve type imports for better tree-shaking - Prevent event processing for non-existent documents 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent b637b1e commit fe19d5a

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

packages/firebase/src/handlers/check-store-events.ts

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@ import type {
55
AppEventsPayload,
66
EventsResult,
77
} from '@cloudcommerce/types';
8+
import type { ApiConfig, ApiError } from '@cloudcommerce/api';
89
import { getFirestore } from 'firebase-admin/firestore';
910
import { PubSub } from '@google-cloud/pubsub';
10-
import api, { ApiConfig } from '@cloudcommerce/api';
11+
import api from '@cloudcommerce/api';
1112
import config, { logger } from '../config';
1213
import { EVENT_SKIP_FLAG, GET_PUBSUB_TOPIC } from '../const';
1314

@@ -231,15 +232,26 @@ export default async () => {
231232
return 1;
232233
});
233234
const fetchFreshApiDoc = async () => {
234-
const { data } = await api.get(`${(resource as 'orders')}/${resourceId}`, {
235-
headers: { 'x-primary-db': 'true' },
236-
});
237-
return data;
235+
try {
236+
const { data } = await api.get(`${(resource as 'orders')}/${resourceId}`, {
237+
headers: { 'x-primary-db': 'true' },
238+
});
239+
return data;
240+
} catch (_err: any) {
241+
const err: ApiError = _err;
242+
if (err.statusCode === 404) {
243+
return false;
244+
}
245+
throw err;
246+
}
238247
};
239248
const datasetAt = Date.now();
240249
const apiDoc = resource !== 'applications'
241250
? await fetchFreshApiDoc()
242251
: null;
252+
if (apiDoc === false) {
253+
return;
254+
}
243255
for (let i = 0; i < ascOrderedEvents.length; i++) {
244256
const apiEvent = ascOrderedEvents[i];
245257
apiEvent.resource = resource;

0 commit comments

Comments
 (0)