diff --git a/.env b/.env index 99dff514..e8d9c583 100644 --- a/.env +++ b/.env @@ -29,4 +29,13 @@ DEFRA_USERNAME=smart DEFRA_PASSWORD=JDJhJDEwJGJkTmxoazdRZ2pHckxybkNxcjNtWWUxZ21qcHNObS9kQVUxN2xjYUdOWms5eS9HaS9XaEt5 # Flag to toggle the incident submission to backend: true / false -SUBMIT_INCIDENT=true \ No newline at end of file +SUBMIT_INCIDENT=true + +# Endpoints for service bus +FISHING_CONNECTION_STRING='' +WATER_CONNECTION_STRING='' +FISHING_QUEUE='' +WATER_QUEUE='' + +# Ordnance Survey key +OS_KEY='' \ No newline at end of file diff --git a/server/routes/water-quality/contact.route.js b/server/routes/water-quality/contact.route.js index 31ce0519..9d1ebc6d 100644 --- a/server/routes/water-quality/contact.route.js +++ b/server/routes/water-quality/contact.route.js @@ -1,7 +1,7 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views /** ,RedisKeys */ } = require('../../utils/constants') +// const RedisService = require('../../services/redis.service') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/location-address-option.route.js b/server/routes/water-quality/location-address-option.route.js index 3d3db678..012ec73b 100644 --- a/server/routes/water-quality/location-address-option.route.js +++ b/server/routes/water-quality/location-address-option.route.js @@ -1,7 +1,7 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views /** , RedisKeys */ } = require('../../utils/constants') +// const RedisService = require('../../services/redis.service') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/location-desc-option.route.js b/server/routes/water-quality/location-desc-option.route.js index aa122c21..0abac51e 100644 --- a/server/routes/water-quality/location-desc-option.route.js +++ b/server/routes/water-quality/location-desc-option.route.js @@ -1,7 +1,6 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views } = require('../../utils/constants') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/location-map-or-desc.route.js b/server/routes/water-quality/location-map-or-desc.route.js index 847ace5b..8fd77c77 100644 --- a/server/routes/water-quality/location-map-or-desc.route.js +++ b/server/routes/water-quality/location-map-or-desc.route.js @@ -1,7 +1,6 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views } = require('../../utils/constants') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/location-mapping-option.route.js b/server/routes/water-quality/location-mapping-option.route.js index 835306fd..ce23272b 100644 --- a/server/routes/water-quality/location-mapping-option.route.js +++ b/server/routes/water-quality/location-mapping-option.route.js @@ -1,6 +1,6 @@ 'use strict' -const { Paths, Views, RedisKeys, SirpRedisKeys } = require('../../utils/constants') +const { Paths, Views, SirpRedisKeys } = require('../../utils/constants') const RedisService = require('../../services/redis.service') const handlers = { diff --git a/server/routes/water-quality/past.route.js b/server/routes/water-quality/past.route.js index 2e6b9dbb..33453f37 100644 --- a/server/routes/water-quality/past.route.js +++ b/server/routes/water-quality/past.route.js @@ -1,7 +1,7 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views /** , RedisKeys */ } = require('../../utils/constants') +// const RedisService = require('../../services/redis.service') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/recurring.route.js b/server/routes/water-quality/recurring.route.js index 8b4bf2b4..cf24cdf4 100644 --- a/server/routes/water-quality/recurring.route.js +++ b/server/routes/water-quality/recurring.route.js @@ -1,7 +1,7 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views /** , RedisKeys */ } = require('../../utils/constants') +// const RedisService = require('../../services/redis.service') const handlers = { get: (request, h) => { diff --git a/server/routes/water-quality/smell-desc.route.js b/server/routes/water-quality/smell-desc.route.js index b7755674..a598d440 100644 --- a/server/routes/water-quality/smell-desc.route.js +++ b/server/routes/water-quality/smell-desc.route.js @@ -3,7 +3,6 @@ const { Paths, Views, - RedisKeys, WQSirpRedisKeys } = require('../../utils/constants') diff --git a/server/routes/water-quality/volunteer-media-contact.route.js b/server/routes/water-quality/volunteer-media-contact.route.js index cb8817ec..a578e828 100644 --- a/server/routes/water-quality/volunteer-media-contact.route.js +++ b/server/routes/water-quality/volunteer-media-contact.route.js @@ -1,7 +1,6 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views } = require('../../utils/constants') const IncidentUtilsService = require('../../services/incident.service') const ASBService = require('../../services/asb.send') const config = require('../../utils/config') diff --git a/server/routes/water-quality/when.route.js b/server/routes/water-quality/when.route.js index 410e688d..a4cb06d6 100644 --- a/server/routes/water-quality/when.route.js +++ b/server/routes/water-quality/when.route.js @@ -1,7 +1,6 @@ 'use strict' -const { Paths, Views, RedisKeys } = require('../../utils/constants') -const RedisService = require('../../services/redis.service') +const { Paths, Views } = require('../../utils/constants') const handlers = { get: (request, h) => { diff --git a/server/services/asb.send.js b/server/services/asb.send.js index 43bfd2ad..6e929e21 100644 --- a/server/services/asb.send.js +++ b/server/services/asb.send.js @@ -1,15 +1,16 @@ +const config = require('../utils/config') const { ServiceBusClient } = require('@azure/service-bus') // Define connection string and related Service Bus entity names here // Get it from the azure portal -const fishingConnectionString = '' // TODO this should go in the env vars -const waterConnectionString = '' // TODO this should go in the env vars +const fishingConnectionString = config.fishingConnectionString +const waterConnectionString = config.waterConnectionString -const fishingQueue = 'devsirinfsb1401-sbncomq-illegal-fishing' // TODO this should go in the env vars -const waterQueue = 'devsirinfsb1401-sbncomq-water-quality' // TODO this should go in the env vars +const fishingQueue = config.fishingQueue +const waterQueue = config.waterQueue module.exports = class ASBService { - static async sendMessageToQueue(incidentToPublish, incidentType) { + static async sendMessageToQueue (incidentToPublish, incidentType) { let sbClient, sender if (incidentType === 300) { @@ -28,7 +29,7 @@ module.exports = class ASBService { myCustomPropertyName: 'Custom property' } } - //console.log(`Sending message: ${message.body}`) + // console.log(`Sending message: ${message.body}`) await sender.sendMessages(message) await sbClient.close() diff --git a/server/services/incident.service.js b/server/services/incident.service.js index f38940cd..1faeee6c 100644 --- a/server/services/incident.service.js +++ b/server/services/incident.service.js @@ -9,7 +9,7 @@ const RedisService = require('./redis.service') const { v4: uuidv4 } = require('uuid') module.exports = class IncidentService { - static async generateIncidentJson(request) { + static async generateIncidentJson (request) { const incidentTypeFishing = 200 const iJsonObj = {} @@ -88,7 +88,7 @@ module.exports = class IncidentService { return iJsonObj } - static async generateWaterIncidentJson(request) { + static async generateWaterIncidentJson (request) { const incidentTypeWater = 300 const iJsonObj = {} @@ -130,7 +130,7 @@ module.exports = class IncidentService { const howfaralongthewaterfeaturedoesthepollutio = [] howfaralongthewaterfeaturedoesthepollutio.push( - howfaralongthewaterfeaturedoesthepollutioText + howfaralongthewaterfeaturedoesthepollutio ) incidentObj.sirp_WaterQuality.sirp_Howfaralongthewaterfeaturedoesthepollutio = howfaralongthewaterfeaturedoesthepollutio @@ -160,7 +160,7 @@ module.exports = class IncidentService { return iJsonObj } - static async generateWaterIncidentJson2(request) { + static async generateWaterIncidentJson2 (request) { const incidentTypeWater = 300 const iJsonObj = {} @@ -221,7 +221,7 @@ module.exports = class IncidentService { incidentObj.sirp_WaterQuality.sirp_inWaterOther = whatIsInTheWaterOther } - //Is there a smell? - Test + // Is there a smell? - Test const smell = await RedisService.get( request, WQSirpRedisKeys.WQ_SIRP_SMELL_SOURCE @@ -229,7 +229,7 @@ module.exports = class IncidentService { if (smell !== undefined) { incidentObj.sirp_WaterQuality.sirp_isthereasmell = Boolean(smell) } - //Is there a smell - other ? - Test + // Is there a smell - other ? - Test const smellOther = await RedisService.get( request, WQSirpRedisKeys.WQ_SIRP_SMELL_SOURCE_OTHER diff --git a/server/services/incidentLocation.js b/server/services/incidentLocation.js index d349ba94..723e0e16 100644 --- a/server/services/incidentLocation.js +++ b/server/services/incidentLocation.js @@ -1,7 +1,7 @@ +const config = require('../utils/config') const util = require('../utils/util') -const apiKey = '50br44ij15V5hIAAhLoeFTiY57NZBYHS' // // TODO this should go in the env vars, this should never be in the source code!! - +const apiKey = config.osKey module.exports = { findByPostcode: async (postcode) => { try { diff --git a/server/utils/config.js b/server/utils/config.js index 3c0b2240..64217529 100644 --- a/server/utils/config.js +++ b/server/utils/config.js @@ -31,10 +31,15 @@ const schema = joi.object().keys({ .string() .default('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'), osDataURI: joi.string().default('https://osdatahub.co.uk'), + osKey: joi.string(), useBasicAuth: joi.bool().valid(true, false), defraUsername: joi.string(), defraPassword: joi.string(), - submitIncident: joi.bool().valid(true, false) + submitIncident: joi.bool().valid(true, false), + fishingConnectionString: joi.string(), + waterConnectionString: joi.string(), + fishingQueue: joi.string(), + waterQueue: joi.string() }) // Build config @@ -49,10 +54,15 @@ const config = { redisPort: process.env.REDIS_PORT, redisPassword: process.env.REDIS_PASSWORD, osDataURI: process.env.OS_DATA_HUB_URI, + osKey: process.env.OS_KEY, useBasicAuth: getBoolean(process.env.USE_BASIC_AUTH || false), defraUsername: process.env.DEFRA_USERNAME, defraPassword: process.env.DEFRA_PASSWORD, - submitIncident: getBoolean(process.env.SUBMIT_INCIDENT || false) + submitIncident: getBoolean(process.env.SUBMIT_INCIDENT || false), + fishingConnectionString: process.env.FISHING_CONNECTION_STRING, + waterConnectionString: process.env.WATER_CONNECTION_STRING, + fishingQueue: process.env.FISHING_QUEUE, + waterQueue: process.env.WATER_QUEUE } // Validate config diff --git a/server/utils/constants.js b/server/utils/constants.js index d2879569..f501ca84 100644 --- a/server/utils/constants.js +++ b/server/utils/constants.js @@ -205,21 +205,12 @@ const WQSirpRedisKeys = { WQ_SIRP_WHAT_CAN_YOU_SEE: 'WQ_sirp_Whatcanyouseeinoronthewater', WQ_SIRP_WHAT_IS_IN_WATER: 'WQ_sirp_Whatdoyouthinkisinthewater', WQ_SIRP_WHAT_IS_IN_WATER_OTHER: 'WQ_sirp_inWaterOther', - WQ_SIRP_SMELL_SOURCE: 'WQ_sirp_isthereasmell', WQ_SIRP_SMELL_SOURCE_OTHER: 'WQ_sirp_isthereasmellother', - WQ_SIRP_POLLUTION_SOURCE: 'WQ_sirp_Doyouthinkyouknowwherethepollutioniscomin', WQ_SIRP_POLLUTION_SOURCE_OTHER: 'WQ_sirp_pollutionSourceOther', - WQ_SIRP_HOW_FAR_ACROSS: 'WQ_sirp_Howfaracrossthewaterfeaturecanyouseethe', - WQ_SIRP_HOW_FAR_ALONG: 'WQ_sirp_Howfaralongthewaterfeaturedoesthepollutio', - - - - WQ_SIRP_HOW_FAR_ALONG: 'WQ_', - WQ_SIRP_SEEN_DEAD_FISH: 'WQ_sirp_Haveyouseendeadfishnearby', WQ_SIRP_HOW_MANY_DEAD_FISH: 'WQ_sirp_Howmanydeadfishhaveyouseen', ANONYMOUS_PAYLOAD: 'anonymous.payload', diff --git a/server/utils/util.js b/server/utils/util.js index 0892db88..3a6ab515 100644 --- a/server/utils/util.js +++ b/server/utils/util.js @@ -3,22 +3,15 @@ const wreck = require('@hapi/wreck').defaults({ }) const makeRequest = async (method, url, options, _ext = false) => { - try { - const response = await wreck[method](url, options) - const { res, payload } = response - - if (res.statusCode !== 200) { - if (payload) { - throw payload - } - - throw new Error('Unknown error') + const response = await wreck[method](url, options) + const { res, payload } = response + if (res.statusCode !== 200) { + if (payload) { + throw payload } - - return payload - } catch (error) { - throw error + throw new Error('Unknown error') } + return payload } const get = async (url, options, ext = false) =>