@boligmappa/web-component-search
Version:
Web component for interacting with the Boligmappa APIs
96 lines • 3.22 kB
JavaScript
import axios from "axios";
export async function getStreets(searchText, pageSize, page, accessToken, apiUrl) {
const requestConfig = {
headers: {
Authorization: `Bearer ${accessToken}`,
},
};
return axios
.get(`${apiUrl}/search/streets?q=${searchText}&pagesize=${pageSize}&page=${page}`, requestConfig)
.then((response) => {
const streets = response.data.response;
const filteredStreets = streets.filter((street) => street.postalCode !== "0000" && street.postalPlace !== null);
return filteredStreets;
})
.catch((error) => {
if (error.message === "Network Error") {
throw new InvalidTokenError();
}
});
}
export async function getAddresses(pageSize, page, accessToken, apiUrl, streetId) {
const requestConfig = {
headers: {
Authorization: `Bearer ${accessToken}`,
},
};
return axios
.get(`${apiUrl}/streets/${streetId}/addresses?pagesize=${pageSize}&page=${page}`, requestConfig)
.then((response) => {
return response.data.response;
})
.catch((error) => {
if (error.message === "Network Error") {
throw new InvalidTokenError();
}
});
}
export async function getBuildings(pageSize, page, accessToken, apiUrl, addressId) {
const requestConfig = {
headers: {
Authorization: `Bearer ${accessToken}`,
},
};
return axios
.get(`${apiUrl}/addresses/${addressId}/buildings?pagesize=${pageSize}&page=${page}`, requestConfig)
.then((response) => {
return response.data.response;
})
.catch((error) => {
if (error.message === "Network Error") {
throw new InvalidTokenError();
}
});
}
export async function getProperties(cursor, accessToken, apiUrl, addressId) {
const requestConfig = {
headers: {
Authorization: `Bearer ${accessToken}`,
},
};
return axios
.get(`${apiUrl}/addresses/${addressId}/properties?owners=true${cursor}`, requestConfig)
.then((response) => {
return response.data;
})
.catch((error) => {
if (error.message === "Network Error") {
throw new InvalidTokenError();
}
});
}
export async function getProjects(page, pageSize, searchText, apiUrl, accessToken) {
const requestConfig = {
headers: {
Authorization: `Bearer ${accessToken}`,
},
};
return axios
.get(`${apiUrl}/search/projects?q=${searchText}&pagesize=${pageSize}&page=${page}`, requestConfig)
.then((response) => {
return response.data.response;
})
.catch((error) => {
if (error.message === "Network Error") {
throw new InvalidTokenError();
}
});
}
class InvalidTokenError extends Error {
constructor() {
super("Token has expired.");
this.name = "InvalidTokenError";
Object.setPrototypeOf(this, InvalidTokenError.prototype);
}
}
//# sourceMappingURL=searchRequests.js.map