Files
web-frontend/server/api/dadata/party.post.ts

54 lines
1.2 KiB
TypeScript

type DadataPartySuggestion = {
value: string;
unrestricted_value?: string;
data?: {
inn?: string;
kpp?: string;
ogrn?: string;
address?: {
value?: string;
};
management?: {
name?: string;
post?: string;
};
};
};
export default defineEventHandler(async (event) => {
const config = useRuntimeConfig(event);
const token = String(config.dadataApiToken || '').trim();
if (!token) {
throw createError({
statusCode: 500,
statusMessage: 'DADATA_API_TOKEN is not configured.',
});
}
const body = await readBody<{ query?: string }>(event);
const query = String(body?.query ?? '').trim();
if (query.length < 2) {
return { suggestions: [] as DadataPartySuggestion[] };
}
const response = await $fetch<{ suggestions?: DadataPartySuggestion[] }>(
'https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/party',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
Authorization: `Token ${token}`,
},
body: {
query,
count: 10,
},
},
);
return {
suggestions: response.suggestions ?? [],
};
});