UNPKG

@bikerpatch/node-red-contrib-hm-land-registry-hpi

Version:

Node-RED nodes to retrieve HM Land Regsitry UK House Price Index data via the Open Data service

270 lines (253 loc) 14.5 kB
<script type="text/html" data-template-name="hmlandregistry-ukhpi"> <div class="form-row"> <label for="node-input-region"><i class="fa fa-globe"></i> <span>Region</span></label> <input type="text" id="node-input-region" style="width: calc(100% - 105px)" placeholder="Region"> <br/> <small style="padding-left: 100px;"><code>msg.region</code> overwrites this value</small> </div> <div class="form-row"> <label for="node-input-periodFrom"><i class="fa fa-clock-o"></i> <span>Period From</span></label> <input type="text" id="node-input-periodFrom" style="width: calc(100% - 105px)" placeholder="date"> <br/> <small style="padding-left: 100px;"><code>msg.periodFrom</code> overwrites this value. Format: yyyy-mm-dd. Default: 6 months ago</small> </div> <div class="form-row"> <label for="node-input-periodTo"><i class="fa fa-clock-o"></i> <span>Period To</span></label> <input type="text" id="node-input-periodTo" style="width: calc(100% - 105px)" placeholder="date"> <br/> <small style="padding-left: 100px;"><code>msg.periodTo</code> overwrites this value. Format: yyyy-mm-dd. Default: now</small> </div> <hr> <div class="form-row"> <label for="node-input-view"><i class="fa fa-list-ul"></i> View</label> <select id="node-input-view" style="width:125px !important"> <option value="all">All</option> <option value="basic" selected>Basic</option> <option value="description">Description</option> <option value="detail">Detail</option> <option value="labeledDescribeViewer">Labeled Describe Viewer</option> <option value="none">None</option> </select> <br/> <small style="padding-left: 100px;"><code>msg.view</code> overwrites this value</small> </div> <hr> <div class="form-row"> <label for="node-input-page"><i class="fa"></i> <span>Page</span></label> <input type="text" id="node-input-page" style="width: calc(100% - 105px)" placeholder="size"> <br/> <small style="padding-left: 100px;"><code>msg.page</code> overwrites this value. Default: 0</small> </div> <div class="form-row"> <label for="node-input-pageSize"><i class="fa"></i> <span>Page Size</span></label> <input type="text" id="node-input-pageSize" style="width: calc(100% - 105px)" placeholder="size"> <br/> <small style="padding-left: 100px;"><code>msg.pageSize</code> overwrites this value. Default: 200</small> </div> <hr> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> <span>Name</span></label> <input type="text" id="node-input-name" style="width: calc(100% - 105px)" placeholder="Name"> </div> </script> <script type="text/markdown" data-help-name="hmlandregistry-ukhpi"> The `Land Registry HPI` capability allows the flow designer to retrieve UK HPI data from the [HM Land Registry Open Data](https://landregistry.data.gov.uk/) initiative. The node uses the [Linked Data API](https://landregistry.data.gov.uk/def/ukhpi) #### Parameters | Configuration Parameter | msg parameter | Description | Data Type | Required | Default | Example | | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | ----------- | | Region | msg.region | [Linked Data API Definition](https://landregistry.data.gov.uk/def/ukhpi/refRegion). See [Regions](#Regions) for a more complete list of possible values | string | **Required** | *n/a* | united-kingdom | | Period From | msg.periodFrom | Minimum value of the period start date. [Linked Data API Definition](https://landregistry.data.gov.uk/def/ukhpi/refPeriodStart) | string (format yyyy-mm-dd) | Optional | *6 months ago* | 2020-07-30 | | Period To | msg.periodTo | Maximum value of the period start date. [Linked Data API Definition](https://landregistry.data.gov.uk/def/ukhpi/refPeriodStart) | string (format yyyy-mm-dd)| Optional | *today's date* | 2022-12-31 | | Page Number | msg.page | In a paged response of data, this is the page index of data to retrieve (first page is index 0) | integer | Optional | 0 | 0 | | Page Size | msg.pageSize | In a paged response of data, this is the size of data per page to retrieve | integer | Optional | 200 | 200 | | View | msg.view | The view of data to retrieve. Possible values: `all` / `basic` / `description` / `detail` / `labeledDescribeViewer` / `none` | string | Optional | basic | basic | | Properties | msg.properties | Array list of data properties to retrieve when the `basic` view is set. [Linked Data API Definition](https://landregistry.data.gov.uk/def/ukhpi) | string | Optional | [housePriceIndex](https://landregistry.data.gov.uk/def/ukhpi/housePriceIndex), [refMonth](https://landregistry.data.gov.uk/def/ukhpi/refMonth), [refPeriodStart](https://landregistry.data.gov.uk/def/ukhpi/refPeriodStart), [refPeriodDuration](https://landregistry.data.gov.uk/def/ukhpi/refPeriodDuration), [salesVolume](https://landregistry.data.gov.uk/def/ukhpi/salesVolume), [averagePrice](https://landregistry.data.gov.uk/def/ukhpi/averagePrice) | `[ "housePriceIndex", "refMonth","refPeriodStart", "refPeriodDuration", "salesVolume", "averagePrice"]` | #### Outputs The following is an example of a successful `msg.payload` paged output, which is copied from `msg.ukhpi.data.result.items`: <details> <summary>Click to expand</summary> [ { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-04", "averagePrice": 281161, "housePriceIndex": 147.46, "refMonth": "2022-04", "refPeriodDuration": 1, "refPeriodStart": "Fri, 01 Apr 2022", "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-03", "averagePrice": 278215, "housePriceIndex": 145.92, "refMonth": "2022-03", "refPeriodDuration": 1, "refPeriodStart": "Tue, 01 Mar 2022", "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-02", "averagePrice": 276609, "housePriceIndex": 145.08, "refMonth": "2022-02", "refPeriodDuration": 1, "refPeriodStart": "Tue, 01 Feb 2022", "salesVolume": 55183, "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-01", "averagePrice": 274171, "housePriceIndex": 143.8, "refMonth": "2022-01", "refPeriodDuration": 1, "refPeriodStart": "Sat, 01 Jan 2022", "salesVolume": 46831, "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] } ] </details> The following is an example of a successful `msg.ukhpi` output, where `msg.ukhpi.data.result` includes paging data: <details> <summary>Click to expand</summary> { "status": 200, "statusText": "OK", "headers": {...}, "config": {...}, "request": {...}, "data": { "format": "linked-data-api", "version": "0.2", "result": { "_about": "https://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom.json?_pageSize=200&_page=0&min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "definition": "https://landregistry.data.gov.uk/meta/data/ukhpi/region/_regionName.json?min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "extendedMetadataVersion": "https://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom.json?_pageSize=200&_page=0&min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,&_metadata=all", "first": "https://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom.json?_pageSize=200&_page=0&min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "isPartOf": { "_about": "https://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom.json?min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "definition": "https://landregistry.data.gov.uk/meta/data/ukhpi/region/_regionName.json?min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "hasPart": "https://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom.json?_pageSize=200&_page=0&min-refPeriodStart=2021-12-26&_view=basic&max-refPeriodStart=&_properties=housePriceIndex,refMonth,refPeriodStart,refPeriodDuration,salesVolume,averagePrice,", "type": [ "http://purl.org/linked-data/api/vocab#ListEndpoint" ] }, "items": [ { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-04", "averagePrice": 281161, "housePriceIndex": 147.46, "refMonth": "2022-04", "refPeriodDuration": 1, "refPeriodStart": "Fri, 01 Apr 2022", "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-03", "averagePrice": 278215, "housePriceIndex": 145.92, "refMonth": "2022-03", "refPeriodDuration": 1, "refPeriodStart": "Tue, 01 Mar 2022", "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-02", "averagePrice": 276609, "housePriceIndex": 145.08, "refMonth": "2022-02", "refPeriodDuration": 1, "refPeriodStart": "Tue, 01 Feb 2022", "salesVolume": 55183, "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] }, { "_about": "http://landregistry.data.gov.uk/data/ukhpi/region/united-kingdom/month/2022-01", "averagePrice": 274171, "housePriceIndex": 143.8, "refMonth": "2022-01", "refPeriodDuration": 1, "refPeriodStart": "Sat, 01 Jan 2022", "salesVolume": 46831, "type": [ "http://landregistry.data.gov.uk/def/ukhpi/MonthlyIndicesByRegion", "http://purl.org/linked-data/cube#Observation" ] } ], "itemsPerPage": 200, "page": 0, "startIndex": 1, "totalResults": 4, "type": [ "http://purl.org/linked-data/api/vocab#Page" ] } } } </details> </script> <script type="text/javascript"> (function () { function validateDateInput(value) { if (!value || value === "") { return true } else if (/^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/.test(value)) { return true } else { return false } } RED.nodes.registerType('hmlandregistry-ukhpi', { color: "#abcd40", category: 'hm land registry', defaults: { name: { value: "" }, region: { value: "" }, periodFrom: { value: "", validate: function (value, opt) { return validateDateInput(value) } }, periodTo: { value: "", validate: function (value, opt) { return validateDateInput(value) } }, view: { value: "basic" }, page: { value: 0 }, pageSize: { value: 200 } }, inputs: 1, outputs: 1, icon: "hmlandregistry.png", label: function () { return this.name || "Land Registry HPI" }, labelStyle: function () { return this.name ? "node_label_italic" : ""; }, paletteLabel: "Land Registry HPI" }); })(); </script>