Merge pull request #450 from shocknet/misc-fixes

Try catch in gun rpc endpoints
This commit is contained in:
CapDog 2021-08-20 16:27:17 -04:00 committed by GitHub
commit 6a107adb64

View file

@ -2410,70 +2410,103 @@ module.exports = async (
const EPUB_FOR_DECRYPT_HEADER = 'epub-for-decryption'
ap.get('/api/gun/once/:path', async (req, res) => {
try {
const publicKeyForDecryption = req.header(PUBKEY_FOR_DECRYPT_HEADER)
const epubForDecryption = req.header(EPUB_FOR_DECRYPT_HEADER)
const { path } = req.params
logger.info(`gun ONCE: ${path}`)
res.status(200).json({
data: await handleGunFetch({
const data = await handleGunFetch({
path,
startFromUserGraph: false,
type: 'once',
publicKeyForDecryption,
epubForDecryption
})
res.status(200).json({
data
})
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.get('/api/gun/load/:path', async (req, res) => {
try {
const publicKeyForDecryption = req.header(PUBKEY_FOR_DECRYPT_HEADER)
const epubForDecryption = req.header(EPUB_FOR_DECRYPT_HEADER)
const { path } = req.params
logger.info(`gun LOAD: ${path}`)
res.status(200).json({
data: await handleGunFetch({
const data = await handleGunFetch({
path,
startFromUserGraph: false,
type: 'load',
publicKeyForDecryption,
epubForDecryption
})
res.status(200).json({
data
})
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.get('/api/gun/user/once/:path', async (req, res) => {
try {
const publicKeyForDecryption = req.header(PUBKEY_FOR_DECRYPT_HEADER)
const epubForDecryption = req.header(EPUB_FOR_DECRYPT_HEADER)
const { path } = req.params
logger.info(`gun otheruser ONCE: ${path}`)
res.status(200).json({
data: await handleGunFetch({
const data = await handleGunFetch({
path,
startFromUserGraph: true,
type: 'once',
publicKeyForDecryption,
epubForDecryption
})
res.status(200).json({
data
})
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.get('/api/gun/user/load/:path', async (req, res) => {
try {
const publicKeyForDecryption = req.header(PUBKEY_FOR_DECRYPT_HEADER)
const epubForDecryption = req.header(EPUB_FOR_DECRYPT_HEADER)
const { path } = req.params
logger.info(`gun self user LOAD: ${path}`)
res.status(200).json({
data: await handleGunFetch({
const data = await handleGunFetch({
path,
startFromUserGraph: true,
type: 'load',
publicKeyForDecryption,
epubForDecryption
})
res.status(200).json({
data
})
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.get('/api/gun/otheruser/:publicKey/:type/:path', async (req, res) => {
try {
const allowedTypes = ['once', 'load', 'open']
const publicKeyForDecryption = req.header(PUBKEY_FOR_DECRYPT_HEADER)
const epubForDecryption = req.header(EPUB_FOR_DECRYPT_HEADER)
@ -2493,9 +2526,7 @@ module.exports = async (
})
return
}
try {
res.status(200).json({
data: await handleGunFetch({
const data = await handleGunFetch({
path,
startFromUserGraph: false,
type,
@ -2503,6 +2534,9 @@ module.exports = async (
publicKeyForDecryption,
epubForDecryption
})
try {
res.status(200).json({
data
})
} catch (err) {
res
@ -2513,6 +2547,12 @@ module.exports = async (
errorMessage: err.message
})
}
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.post('/api/lnd/cb/:methodName', (req, res) => {
@ -2556,6 +2596,7 @@ module.exports = async (
ok: true
})
} catch (err) {
logger.error(err)
res
.status(
err.message === Common.Constants.ErrorCode.NOT_AUTH ? 401 : 500
@ -2577,6 +2618,7 @@ module.exports = async (
id
})
} catch (err) {
logger.error(err)
res
.status(
err.message === Common.Constants.ErrorCode.NOT_AUTH ? 401 : 500
@ -2610,6 +2652,7 @@ module.exports = async (
res.status(200).json(results)
} catch (e) {
logger.error(e)
res
.status(e.message === Common.Constants.ErrorCode.NOT_AUTH ? 401 : 500)
.json({
@ -2619,9 +2662,17 @@ module.exports = async (
})
//this is for OBS notifications, not wired with UI.
ap.get('/api/subscribeStream', (req, res) => {
try {
res.sendFile(path.join(__dirname, '/index.html'))
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
ap.post('/api/enableNotificationsOverlay', (req, res) => {
try {
const { postID } = req.body
if (!postID) {
return res.status(400).json({
@ -2632,6 +2683,12 @@ module.exports = async (
res.json({
accessId
})
} catch (e) {
logger.error(e)
res.status(500).json({
errorMessage: e.message
})
}
})
//this is for wasLive/isLive status
ap.post('/api/listenStream', (req, res) => {