codingame-api-node-ts
Version:
A CodinGame API node, that permits you to access all of the endpoints of this website. Wrote in TypeScript, so you can previsualize how the response will look like by checking the code.
129 lines (128 loc) • 6.33 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.findAllMinimalProgress = exports.findProgressByPrettyId = exports.findProgressByIds = void 0;
var axios_1 = __importDefault(require("axios"));
var main_1 = require("../main");
/**
* Find puzzle informations and player's completion from an array of number IDs.
*
* @param {number[]} ids - Every Puzzle IDs you want to inspect
* @param {number} userId - User ID you want to retrieve the completion
*
*/
var findProgressByIds = function (ids, userId) { return __awaiter(void 0, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, axios_1.default({
url: main_1.urls.puzzle + "findProgressByIds",
method: "post",
headers: {
"content-type": "application/json;charset=UTF-8"
},
data: [ids, userId, 1]
})];
case 1:
response = _a.sent();
return [2 /*return*/, response["data"]];
}
});
}); };
exports.findProgressByIds = findProgressByIds;
/**
* Find puzzle informations and player's completion from a "pretty ID" which is a string, found in the URL of the puzzle.
*
* ## Requires to log in before.
*
* @param {string} cookies - The cookies string that you obtain when you're loggin in with loginSite
* @param {string} puzzlePrettyId - Puzzle's "pretty ID", found in its URL.
* @param {number} userId - User ID you want to retrieve the completion
*/
var findProgressByPrettyId = function (cookies, puzzlePrettyId, userId) { return __awaiter(void 0, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, axios_1.default({
url: main_1.urls.puzzle + "findProgressByPrettyId",
method: "post",
headers: {
"content-type": "application/json;charset=UTF-8",
"cookie": cookies
},
data: [puzzlePrettyId, userId]
})];
case 1:
response = _a.sent();
return [2 /*return*/, response["data"]];
}
});
}); };
exports.findProgressByPrettyId = findProgressByPrettyId;
/**
* Find every minimal puzzle progress from a user. You can also use this to get every puzzles of CodinGame
*
* ## Requires to log in before.
*
* @param {string} cookies - The cookies string that you obtain when you're loggin in with loginSite
* @param {number} userId - User ID you want to retrieve the completion
*
*/
var findAllMinimalProgress = function (cookies, userId) { return __awaiter(void 0, void 0, void 0, function () {
var response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, axios_1.default({
url: main_1.urls.puzzle + "findAllMinimalProgress",
method: "post",
headers: {
"content-type": "application/json;charset=UTF-8",
"cookie": cookies
},
data: [userId]
})];
case 1:
response = _a.sent();
return [2 /*return*/, response["data"]];
}
});
}); };
exports.findAllMinimalProgress = findAllMinimalProgress;