estate-fetch
This module helps to fetch real estate data from immobilienscout24 and/or flowfact.
Usage
immobilienscout24
To use this module you need to pre-generate credentials for your is24 account.
const { IS24, utils: { deepRenameProps } } = require('estate-fetch'); const runIs24 = async () => { const is24 = new IS24({ oauth_consumer_key: '<oauth_consumer_key>', consumer_secret: '<consumer_secret>', oauth_token: '<oauth_token>', oauth_token_secret: '<oauth_token_secret>', }); const estates = await is24.getEstates(); const [{ id }] = estates; const estate = await is24.getEstate(id); const sanitizedEstate = deepRenameProps(estate); // helps to get rid of weird key names in is24 data // Fetch (resolved) attachments const attachmentsByUrl = await is24.getAttachmentsByUrl(estate.attachmentUrl); const resolvedAttachmentsByUrl = await is24.getResolvedAttachmentsByUrl(estate.attachmentUrl); const attachmentsById = await is24.getAttachmentsById(id); const resolvedAttachmentsById = await is24.getResolvedAttachmentsById(id);}; runIs24().then(console.log).catch(console.error);
flowfact
To use this module you need to use credentials for your flowfact account.
const { FlowFact, utils: { processFlowFactEstate } } = require('estate-fetch'); const runFlowFact = async () => { const flowFact = new FlowFact({ user: '<user>', customer: '<customer>', password: '<password>', }); const estates = await flowFact.getEstates(); const [{ id }] = estates; const estate = await flowFact.getEstate(id); const processedEstate = processEstate(estate); // Fetch (resolved) images const pictures = await flowFact.getPictures(id); const resolvedPictures = await flowFact.getResolvedPictures(id);}; runFlowFact().then(console.log).catch(console.error);
CLI
A small cli exists to fetch the estates list using npx.
USER="<user>" CUSTOMER="<customer>" PASSWORD="<password>" npx estate-fetch flowfact# or OAUTH_CONSUMER_KEY="<oauth_consumer_key>" CONSUMER_SECRET="<consumer_secret>" OAUTH_TOKEN="<oauth_token>" OAUTH_TOKEN_SECRET="<oauth_token_secret>" npx estate-fetch is24
TODO
- tests
- integrate ci (github actions)
- integrate semantic-release