Controlling dropdown options with JSON response

@Iain

Talk about a pain in the ass to figure out but got it done eventually…

BACKEND CODE

import {fetch} from ‘wix-fetch’;

export function getAddresses(sessionpostcode) {

const url = ‘https://api.getaddress.io/find/’;
const key = ‘XXXXXXXXXX’;
let fullUrl = url + sessionpostcode + ‘?api-key=’ + key + ‘&expand=true’;

return fetch(fullUrl, {“method”: “get”})

.then( (httpResponse) => {

if (httpResponse.ok) {
let addresses = httpResponse.json();

//console.log(addresses);

return addresses;

}
})

}

PAGE CODE

import { getAddresses } from ‘backend/getaddressio’;
import {session} from ‘wix-storage’;
let sessionpostcode = session.getItem(“sessionpostcode”);

$w.onReady( function () {
getAddresses(sessionpostcode)

   .then((getAddressesResults) => { 

        console.log(getAddressesResults); 

const uniqueTitles = getUniqueTitles(getAddressesResults.addresses);

            $w("#dropdown1").options = buildOptions(uniqueTitles); 

        }); 

function getUniqueTitles(items) {

const titlesOnly = items.map(item => item.line_1);

return [… new Set(titlesOnly)];

    } 

function buildOptions(uniqueList) {

return uniqueList.map(curr => {

return { label: curr, value: curr };

        }); 

    } 

})