UNPKG

@protokol/nft-base-api

Version:

REST API For Base NFT Functionality

122 lines 4.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.register = void 0; const core_api_1 = require("@arkecosystem/core-api"); const joi_1 = __importDefault(require("joi")); const assets_1 = require("../controllers/assets"); const register = (server) => { const controller = server.app.app.resolve(assets_1.AssetsController); server.bind(controller); server.route({ method: "GET", path: "/assets", handler: controller.index, options: { validate: { query: joi_1.default.object({ orderBy: server.app.schemas.orderBy, transform: joi_1.default.bool().default(true), }).concat(core_api_1.Schemas.pagination), }, plugins: { pagination: { enabled: true, }, }, }, }); server.route({ method: "GET", path: "/assets/{id}", handler: controller.show, options: { validate: { query: joi_1.default.object({ transform: joi_1.default.bool().default(true), }), params: joi_1.default.object({ id: joi_1.default.string().hex().length(64), }), }, }, }); server.route({ method: "GET", path: "/assets/{id}/wallets", handler: controller.showAssetWallet, options: { validate: { params: joi_1.default.object({ id: joi_1.default.string().hex().length(64), }), }, }, }); server.route({ method: "GET", path: "/assets/wallet/{id}", handler: controller.showWalletAssets, options: { validate: { query: joi_1.default.object({ orderBy: server.app.schemas.orderBy, transform: joi_1.default.bool().default(true), inAuction: joi_1.default.bool().default(false), inExpiredAuction: joi_1.default.bool().default(false), }).concat(core_api_1.Schemas.pagination), params: joi_1.default.object({ id: joi_1.default.string().hex().length(66), }), }, plugins: { pagination: { enabled: true, }, }, }, }); server.route({ method: "POST", path: "/assets/search", handler: controller.showByAsset, options: { validate: { query: joi_1.default.object({ orderBy: server.app.schemas.orderBy, transform: joi_1.default.bool().default(true), }).concat(core_api_1.Schemas.pagination), }, plugins: { pagination: { enabled: true, }, }, }, }); server.route({ method: "POST", path: "/assets/claim", handler: async (request) => { const res = await controller.claimAsset(request); if (res.isBoom) return res; const route = server.table().find((route) => route.method === "post" && route.path === "/api/transactions"); if (!route) return; return route.settings.handler({ payload: { transactions: [res] } }); }, options: { validate: { payload: joi_1.default.object({ collectionId: joi_1.default.string().hex().length(64).required(), recipientId: joi_1.default.string().alphanum().length(34).required(), }), }, }, }); }; exports.register = register; //# sourceMappingURL=assets.js.map