Skip to content

[wishlist] fetch data from HPD #12

@grischard

Description

@grischard

HPD has additional information on buildings.

const TOKEN_URL = 'https://mspwvw-hpdleov3.nyc.gov/authenticationservice/1.0/api/Apim/token';
const DATA_URL = 'https://mspwvw-hpdleov3.nyc.gov/hpdonline.api/1.0/api/building/search';

async function fetchToken() {
    try {
        let response = await fetch(TOKEN_URL, { method: 'POST', body: '' });
        let data = await response.json();
        return data.token;
    } catch (error) {
        console.error('Error fetching token:', error);
        throw error;
    }
}

async function fetchDataWithToken(bin, token) {
    try {
        let response = await fetch(DATA_URL, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json',
                'ApiKey': `Bearer ${token}`
            },
            body: JSON.stringify({
                bin: bin,
                isCountRequired: true
            })
        });
        let data = await response.json();
        return data;
    } catch (error) {
        console.error('Error fetching data:', error);
        throw error;
    }
}

async function fetchInfo(bin) {
    try {
        let token = await fetchToken();
        let data = await fetchDataWithToken(bin, token);
        return data;
    } catch (error) {
        console.error('Error fetching info:', error);
        throw error;
    }
}

// Example usage
fetchInfo(3428938)
    .then(data => {
        console.log('Fetched Data:', data);
    })
    .catch(error => {
        console.error('Error:', error);
    });

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions