@@ -2,39 +2,32 @@ import axios from 'axios'
2
2
import { NextFunction , Request , Response } from 'express'
3
3
import * as get from 'lodash/get'
4
4
5
- const { OS_API_KEY } = process . env
6
-
7
5
export async function search (
8
6
request : Request ,
9
7
response : Response ,
10
8
next : NextFunction
11
9
) {
12
- const { postcode , srs = 'WGS84' } = request . params
13
-
14
- const url = `https://api.ordnancesurvey.co.uk/places/v1/addresses/postcode?postcode =${ postcode } &key= ${ OS_API_KEY } &output_srs= ${ srs } `
10
+ const url = `https://api.ideal-postcodes.co.uk/v1/postcodes/ ${
11
+ request . params . postcode
12
+ } ?api_key =${ process . env . IDEAL_POSTCODES_KEY } `
15
13
16
14
try {
17
15
const { data } = await axios . get ( url )
18
16
19
17
response . json ( {
20
- localAuthority : get (
21
- data ,
22
- 'results[0].DPA.LOCAL_CUSTODIAN_CODE_DESCRIPTION' ,
23
- 'unknown'
24
- ) . toLowerCase ( ) ,
25
- results : data . results . map ( ( { DPA : result } ) => {
26
- // console.log(result)
18
+ localAuthority : get ( data , 'result[0].district' , 'unknown' )
19
+ . toLowerCase ( )
20
+ . replace ( ' ' , '' ) ,
21
+ results : data . result . map ( result => {
27
22
return {
28
- id : result . UPDRN || result . UPRN ,
29
- name : result . ADDRESS . split ( ',' )
30
- . slice ( 0 , - 1 )
31
- . join ( ',' ) ,
32
- uprn : result . UPRN ,
33
- updrn : result . UPDRN ,
34
- x : result . X_COORDINATE ,
35
- y : result . Y_COORDINATE ,
36
- lat : result . LAT ,
37
- lng : result . LNG ,
23
+ id : result . udprn . toString ( ) ,
24
+ name : [ result . line_1 , result . line_2 ] . filter ( Boolean ) . join ( ', ' ) ,
25
+ uprn : result . udprn . toString ( ) ,
26
+ updrn : result . udprn . toString ( ) ,
27
+ x : result . eastings ,
28
+ y : result . northings ,
29
+ lat : result . latitude ,
30
+ lng : result . longitude ,
38
31
rawData : result ,
39
32
}
40
33
} ) ,
0 commit comments