@protokol/nft-base-api
Version:
REST API For Base NFT Functionality
122 lines • 4.09 kB
JavaScript
"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