Edits history of script submission #9399 for ' Search Locations (tripadvisor)'

  • bun
    One script reply has been approved by the moderators
    Ap­pro­ved
    //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