packages/rest-api/src/controllers/destinationTokensController.ts
import { validationResult } from 'express-validator'
import { tokenAddressToToken } from '../utils/tokenAddressToToken'
import { BRIDGE_ROUTE_MAPPING } from '../utils/bridgeRouteMapping'
import { logger } from '../middleware/logger'
export const destinationTokensController = async (req, res) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() })
}
let payload
try {
const { fromChain, fromToken } = req.query
const fromTokenInfo = tokenAddressToToken(fromChain.toString(), fromToken)
if (!fromTokenInfo) {
payload = []
} else {
const constructedKey = `${fromTokenInfo.symbol}-${fromChain}`
payload = BRIDGE_ROUTE_MAPPING[constructedKey]
}
logger.info(`Successful destinationTokensController response`, {
query: req.query,
payload,
})
return res.json(payload)
} catch (err) {
logger.error(`Error in destinationTokensController`, {
query: req.query,
error: err.message,
stack: err.stack,
})
return res.status(500).json({
error:
'An unexpected error occurred in /destinationTokens. Please try again later.',
})
}
}