frontend/pages/api/mapbox/autofill/suggest.ts (view raw)
1import type {NextApiRequest, NextApiResponse} from 'next';
2import {AddressAutofillCore, AddressAutofillSuggestion} from '@mapbox/search-js-core';
3
4const {MAPBOX_TOKEN} = process.env;
5
6export default async function handler(
7 req: NextApiRequest,
8 res: NextApiResponse<{
9 suggestions: Array<AddressAutofillSuggestion>
10 }>
11) {
12 const {locale, search, sessionToken} = req.query;
13
14 if (Array.isArray(locale) || Array.isArray(search) || Array.isArray(sessionToken)) {
15 res.status(422);
16 return
17 }
18
19 const autofill = new AddressAutofillCore({accessToken: MAPBOX_TOKEN || '', language: locale})
20 const {suggestions} = await autofill.suggest(search, {sessionToken})
21
22 if (suggestions.length === 0) {
23 res.status(404);
24 return;
25 }
26
27 res.send({suggestions})
28 return;
29}