//native
type Tripadvisor = {
apiKey: string
}
export async function main(
resource: Tripadvisor,
searchQuery: string,
options?: {
category?: 'hotels' | 'attractions' | 'restaurants' | 'geos'
phone?: string
address?: string
latLong?: string
radius?: number
radiusUnit?: 'km' | 'mi' | 'm'
language?: string
}
) {
const queryParams = new URLSearchParams({
key: resource.apiKey,
searchQuery
})
if (options?.category) {
queryParams.append('category', options.category)
}
if (options?.phone) {
queryParams.append('phone', options.phone)
}
if (options?.address) {
queryParams.append('address', options.address)
}
if (options?.latLong) {
queryParams.append('latLong', options.latLong)
}
if (options?.radius) {
queryParams.append('radius', options.radius.toString())
}
if (options?.radiusUnit) {
queryParams.append('radiusUnit', options.radiusUnit)
}
if (options?.language) {
queryParams.append('language', options.language)
}
const endpoint = `https://api.content.tripadvisor.com/api/v1/location/search?${queryParams.toString()}`
const response = await fetch(endpoint, {
method: 'GET',
headers: {
accept: 'application/json'
}
})
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`)
}
const data = await response.json()
return data
}
Submitted by hugo697 581 days ago