UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

75 lines 6.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.apiManager = void 0; const ManagerBase_1 = require("./ManagerBase"); const cors_1 = __importDefault(require("cors")); const ClientManager_1 = require("./ClientManager"); const MaxListClientsLength = 100; class ApiManager extends ManagerBase_1.ManagerBase { constructor() { super('ApiManager'); } initialize(app) { /** * this is for gltserver to access msgserver states */ app.get('/clientapi/:method/:clientCode', (0, cors_1.default)(), (_req, res) => { this.callMethod('clientapi_', _req.params.method, this.parseParams(_req.params.clientCode, _req.query.args)) .then(json => { res.json(json); }) .catch(err => { res.sendStatus(500).json(err); }); }); } parseParams(firstParam, paramsString) { let params = paramsString && JSON.parse(paramsString); if (!Array.isArray(params)) { params = []; } if (firstParam !== null) { params.unshift(firstParam); } return params; } callMethod(prefix, methodName, params) { let method = this[prefix + methodName]; this.designContract(method && typeof method === 'function', 'This api is not available.'); return method.apply(this, params); } clientapi_list_players_count(_clientCode, clientCodes) { if (clientCodes.length > MaxListClientsLength) { clientCodes = clientCodes.slice(0, MaxListClientsLength); } let json = {}; for (let clientCode of clientCodes) { let project = ClientManager_1.clientManager.getCachedClientProject(clientCode); if (project) { json[clientCode] = project.playersCount; } } return Promise.resolve(json); } clientapi_get_players_count(clientCode, version, options) { let project = ClientManager_1.clientManager.getCachedClientProject(clientCode); return Promise.resolve({ count: project ? project.getPlayersCount(version, options) : 0 }); } clientapi_list_clients(_clientCode, start, length) { length = Math.min(length, MaxListClientsLength); let projects = ClientManager_1.clientManager.listProjects().slice(start, start + length); let clients = {}; for (let project of projects) { clients[project.code] = project.playersCount; ; } return Promise.resolve(clients); } } exports.apiManager = new ApiManager(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBpTWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2ZXIvbWFuYWdlcnMvQXBpTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSwrQ0FBNEM7QUFFNUMsZ0RBQXdCO0FBQ3hCLG1EQUFnRDtBQUdoRCxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQUVqQyxNQUFNLFVBQVcsU0FBUSx5QkFBVztJQUVoQztRQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQW9CO1FBRTNCOztXQUVHO1FBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFBLGNBQUksR0FBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFjLENBQUMsQ0FBQztpQkFDakgsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDVCxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBRVAsQ0FBQztJQUVPLFdBQVcsQ0FBQyxVQUFlLEVBQUUsWUFBb0I7UUFDckQsSUFBSSxNQUFNLEdBQVUsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsSUFB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