Merge branch 'master' into feat/walls
This commit is contained in:
commit
146d03e771
2 changed files with 49 additions and 11 deletions
|
|
@ -1 +1,6 @@
|
||||||
DISABLE_SHOCK_ENCRYPTION=false
|
DATA_FILE_NAME=data3
|
||||||
|
PEERS=["http://gun.shock.network:8765/gun"]
|
||||||
|
MS_TO_TOKEN_EXPIRATION=4500000
|
||||||
|
DISABLE_SHOCK_ENCRYPTION=false
|
||||||
|
CACHE_HEADERS_MANDATORY=true
|
||||||
|
SHOCK_CACHE=true
|
||||||
|
|
@ -68,6 +68,46 @@ const server = program => {
|
||||||
.digest('hex')
|
.digest('hex')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const cacheCheck = ({ req, res, args, send }) => {
|
||||||
|
if (
|
||||||
|
(process.env.SHOCK_CACHE === 'true' || !process.env.SHOCK_CACHE) &&
|
||||||
|
req.method === 'GET'
|
||||||
|
) {
|
||||||
|
const dataHash = hashData(args[0]).slice(-8)
|
||||||
|
res.set('shock-cache-hash', dataHash)
|
||||||
|
|
||||||
|
logger.debug('shock-cache-hash:', req.headers['shock-cache-hash'])
|
||||||
|
logger.debug('Data Hash:', dataHash)
|
||||||
|
if (
|
||||||
|
!req.headers['shock-cache-hash'] &&
|
||||||
|
(process.env.CACHE_HEADERS_MANDATORY === 'true' ||
|
||||||
|
!process.env.CACHE_HEADERS_MANDATORY)
|
||||||
|
) {
|
||||||
|
logger.warn(
|
||||||
|
"Request is missing 'shock-cache-hash' header, please make sure to include that in each GET request in order to benefit from reduced data usage"
|
||||||
|
)
|
||||||
|
return { cached: false, hash: dataHash }
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req.headers['shock-cache-hash'] === dataHash) {
|
||||||
|
logger.debug('Same Hash Detected!')
|
||||||
|
args[0] = null
|
||||||
|
res.status(304)
|
||||||
|
send.apply(res, args)
|
||||||
|
return { cached: true, hash: dataHash }
|
||||||
|
}
|
||||||
|
|
||||||
|
return { cached: false, hash: dataHash }
|
||||||
|
}
|
||||||
|
|
||||||
|
return { cached: false, hash: null }
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Express.Request} req
|
||||||
|
* @param {Express.Response} res
|
||||||
|
* @param {(() => void)} next
|
||||||
|
*/
|
||||||
const modifyResponseBody = (req, res, next) => {
|
const modifyResponseBody = (req, res, next) => {
|
||||||
const deviceId = req.headers['x-shockwallet-device-id']
|
const deviceId = req.headers['x-shockwallet-device-id']
|
||||||
const oldSend = res.send
|
const oldSend = res.send
|
||||||
|
|
@ -80,16 +120,9 @@ const server = program => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const dataHash = hashData(args[0]).slice(-8)
|
const { cached, hash } = cacheCheck({ req, res, args, send: oldSend })
|
||||||
res.set('shock-cache-hash', dataHash)
|
|
||||||
|
|
||||||
logger.debug('shock-cache-hash:', req.headers['shock-cache-hash'])
|
if (cached) {
|
||||||
logger.debug('Data Hash:', dataHash)
|
|
||||||
if (req.headers['shock-cache-hash'] === dataHash) {
|
|
||||||
logger.debug('Same Hash Detected!')
|
|
||||||
args[0] = null
|
|
||||||
res.status(304)
|
|
||||||
oldSend.apply(res, args)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -100,7 +133,7 @@ const server = program => {
|
||||||
message: args[0] ? args[0] : {},
|
message: args[0] ? args[0] : {},
|
||||||
deviceId,
|
deviceId,
|
||||||
metadata: {
|
metadata: {
|
||||||
hash: dataHash
|
hash
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
: args[0]
|
: args[0]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue