UNPKG

@protokol/nft-exchange-api

Version:

REST API For Exchange NFT Functionality

124 lines 4.31 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 auctions_1 = require("../controllers/auctions"); const register = (server) => { const controller = server.app.app.resolve(auctions_1.AuctionsController); server.bind(controller); server.route({ method: "GET", path: "/auctions", handler: controller.index, options: { validate: { query: joi_1.default.object({ orderBy: server.app.schemas.orderBy, transform: joi_1.default.bool().default(true), expired: joi_1.default.bool().default(false), }).concat(core_api_1.Schemas.pagination), }, plugins: { pagination: { enabled: true, }, }, }, }); server.route({ method: "GET", path: "/auctions/{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: "/auctions/{id}/wallets", handler: controller.showAuctionWallet, options: { validate: { params: joi_1.default.object({ id: joi_1.default.string().hex().length(64), }), }, }, }); server.route({ method: "POST", path: "/auctions/search", handler: controller.search, options: { validate: { query: joi_1.default.object({ orderBy: server.app.schemas.orderBy, transform: joi_1.default.bool().default(true), onlyActive: joi_1.default.bool().default(false), expired: joi_1.default.bool().default(false), includeBids: joi_1.default.bool().default(false), canceledBids: joi_1.default.bool().default(false), }).concat(core_api_1.Schemas.pagination), payload: joi_1.default.object({ senderPublicKey: joi_1.default.string().hex().length(66).optional(), nftIds: joi_1.default.array().items(joi_1.default.string().hex().length(64)).optional(), startAmount: joi_1.default.string().optional(), expiration: joi_1.default.object({ blockHeight: joi_1.default.number().positive(), }), }), }, plugins: { pagination: { enabled: true, }, }, }, }); server.route({ method: "GET", path: "/auctions/canceled", handler: controller.indexCanceled, 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: "/auctions/canceled/{id}", handler: controller.showAuctionCanceled, 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), }), }, }, }); }; exports.register = register; //# sourceMappingURL=auctions.js.map