From d8a29eebe094a991d9eeb32efcf23431f1ea2762 Mon Sep 17 00:00:00 2001 From: Aleksandr Bautin Date: Mon, 10 Jul 2023 19:43:37 +0700 Subject: [PATCH] added errors catching to /content-message and /buy-message --- bin/api.js | 134 ++++++++++++++++++++++++++++------------------------- 1 file changed, 71 insertions(+), 63 deletions(-) diff --git a/bin/api.js b/bin/api.js index c0c8aeb..acd720b 100644 --- a/bin/api.js +++ b/bin/api.js @@ -1,83 +1,91 @@ -const main = require('../contracts/main'); -const {Address, Cell, Slice} = require("ton"); -const {Base64} = require('@tonconnect/protocol'); - -const express = require('express') -const {get_tonclient, AdnlAddress} = require("../contracts/utils"); -const {getRecords} = require("../contracts/main"); -const {sha256} = require("ton-crypto"); -const {BN} = require("bn.js"); -const app = express() -const port = 5171 -const debug = process.env.DEBUG === '1'; +const main = require("../contracts/main"); +const { Address, Cell, Slice } = require("ton"); +const { Base64 } = require("@tonconnect/protocol"); +require("dotenv").config(); +const express = require("express"); +const { get_tonclient, AdnlAddress } = require("../contracts/utils"); +const { getRecords } = require("../contracts/main"); +const { sha256 } = require("ton-crypto"); +const { BN } = require("bn.js"); +const app = express(); +const port = 5171; +const debug = process.env.DEBUG === "1"; let tonclient = get_tonclient(debug); -app.use(function(err, req, res, next) { - if(!err) return next(); // you also need this line - console.log("error"); - res.send("error"); +app.use(function (err, req, res, next) { + if (!err) return next(); // you also need this line + console.log("error"); + res.send("error"); +}); +app.get("/", async (req, res) => { + res.send("Agorata microservice for dealing with TON"); }); -app.get('/', async (req, res) => { - res.send('Agorata microservice for dealing with TON') -}) -app.get('/buy-message/:collection/:domain' /* the rest as get parameters: buyer, key */, (req, res) => { +app.get("/buy-message/:collection/:domain" /* the rest as get parameters: buyer, key */, (req, res) => { + try { let collection = Address.parse(req.params.collection); - if (req.query.buyer !== '') { - let buyer = Address.parse(req.query.buyer); - let key = Buffer.from(req.query.key, 'hex'); - let signature = main.signBuy(req.params.domain, collection, buyer, key); - let msg = main.createItem({domain: req.params.domain, signature}) - res.send(JSON.stringify([Base64.encode(msg.toBoc()), collection.toString()])); + if (req.query.buyer !== "") { + let buyer = Address.parse(req.query.buyer); + let key = Buffer.from(req.query.key, "hex"); + let signature = main.signBuy(req.params.domain, collection, buyer, key); + let msg = main.createItem({ domain: req.params.domain, signature }); + res.send(JSON.stringify([Base64.encode(msg.toBoc()), collection.toString()])); } else { - let msg = main.createItem({domain: req.params.domain, signature: '0'}) - res.send(JSON.stringify([Base64.encode(msg.toBoc()), collection.toString()])); + let msg = main.createItem({ domain: req.params.domain, signature: "0" }); + res.send(JSON.stringify([Base64.encode(msg.toBoc()), collection.toString()])); } + } catch (e) { + console.error("buy-message", e); + } }); -app.get('/content-message/:address/:zone/:domain', async (req, res) => { - let msg = await main.setContent({domain: req.params.domain, zone: req.params.zone}); +app.get("/content-message/:address/:zone/:domain", async (req, res) => { + try { + let msg = await main.setContent({ domain: req.params.domain, zone: req.params.zone }); let addr = main.getItemAddr(Address.parse(req.params.address), req.params.domain, 0); res.send(JSON.stringify([Base64.encode(msg.toBoc()), addr.toString()])); + } catch (e) { + console.error("content-message"); + } }); -app.get('/address/:collection/:domain', (req, res) => { - let addr = main.getItemAddr(Address.parse(req.params.collection), req.params.domain, 0); - res.send(JSON.stringify({"address": addr.toString()})); -}) +app.get("/address/:collection/:domain", (req, res) => { + let addr = main.getItemAddr(Address.parse(req.params.collection), req.params.domain, 0); + res.send(JSON.stringify({ address: addr.toString() })); +}); -app.get('/get-records/:address', async (req, res) => { - try { - let records = await getRecords(tonclient, Address.parse(req.params.address)); - // console.log(records) - res.send(JSON.stringify(records)); - } catch (e) { - console.log(e); - res.send(JSON.stringify({})); - } -}) +app.get("/get-records/:address", async (req, res) => { + try { + let records = await getRecords(tonclient, Address.parse(req.params.address)); + // console.log(records) + res.send(JSON.stringify(records)); + } catch (e) { + console.log(e); + res.send(JSON.stringify({})); + } +}); -app.get('/get-price/:address/:subdomain', async (req, res) => { - let price = await main.getPrice(tonclient, Address.parse(req.params.address), req.params.subdomain); - res.send(JSON.stringify(price)); -}) +app.get("/get-price/:address/:subdomain", async (req, res) => { + let price = await main.getPrice(tonclient, Address.parse(req.params.address), req.params.subdomain); + res.send(JSON.stringify(price)); +}); -app.get('/set-record/site/:site', async (req, res) => { - let site = new AdnlAddress(req.params.site); - let msg = await main.changeRecordMsg("site", await main.AdnlRecord(site)); - res.send(JSON.stringify(Base64.encode(msg.toBoc()))); -}) +app.get("/set-record/site/:site", async (req, res) => { + let site = new AdnlAddress(req.params.site); + let msg = await main.changeRecordMsg("site", await main.AdnlRecord(site)); + res.send(JSON.stringify(Base64.encode(msg.toBoc()))); +}); -app.get('/hash/:key', async (req, res) => { - res.send(new BN(await sha256(req.params.key)).toString()); -}) +app.get("/hash/:key", async (req, res) => { + res.send(new BN(await sha256(req.params.key)).toString()); +}); -app.get('/set-record/wallet/:wallet', async (req, res) => { - let wallet = Address.parse(req.params.wallet); - let msg = await main.changeRecordMsg("wallet", await main.WalletRecord(wallet)); - res.send(JSON.stringify(Base64.encode(msg.toBoc()))); -}) +app.get("/set-record/wallet/:wallet", async (req, res) => { + let wallet = Address.parse(req.params.wallet); + let msg = await main.changeRecordMsg("wallet", await main.WalletRecord(wallet)); + res.send(JSON.stringify(Base64.encode(msg.toBoc()))); +}); app.listen(port, () => { - console.log(`Example app listening on port ${port}`) -}) + console.log(`Example app listening on port ${port}`); +});