UNPKG

dograma

Version:

NodeJS/Browser MTProto API Telegram client library,

135 lines (134 loc) 4.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimedOutError = exports.ServerError = exports.FloodError = exports.AuthKeyError = exports.NotFoundError = exports.ForbiddenError = exports.UnauthorizedError = exports.BadRequestError = exports.InvalidDCError = exports.RPCError = void 0; const ts_custom_error_1 = require("ts-custom-error"); class RPCError extends ts_custom_error_1.CustomError { constructor(message, request, code) { super("{0}: {1}{2}" .replace("{0}", (code === null || code === void 0 ? void 0 : code.toString()) || "") .replace("{1}", message || "") .replace("{2}", RPCError._fmtRequest(request))); this.code = code; this.errorMessage = message; } static _fmtRequest(request) { // TODO fix this if (request) { return ` (caused by ${request.className})`; } else { return ""; } } } exports.RPCError = RPCError; /** * The request must be repeated, but directed to a different data center. */ class InvalidDCError extends RPCError { constructor(message, request, code) { super(message, request, code); this.code = code || 303; this.errorMessage = message || "ERROR_SEE_OTHER"; } } exports.InvalidDCError = InvalidDCError; /** * The query contains errors. In the event that a request was created * using a form and contains user generated data, the user should be * notified that the data must be corrected before the query is repeated. */ class BadRequestError extends RPCError { constructor() { super(...arguments); this.code = 400; this.errorMessage = "BAD_REQUEST"; } } exports.BadRequestError = BadRequestError; /** * There was an unauthorized attempt to use functionality available only * to authorized users. */ class UnauthorizedError extends RPCError { constructor() { super(...arguments); this.code = 401; this.errorMessage = "UNAUTHORIZED"; } } exports.UnauthorizedError = UnauthorizedError; /** * Privacy violation. For example, an attempt to write a message to * someone who has blacklisted the current user. */ class ForbiddenError extends RPCError { constructor() { super(...arguments); this.code = 403; this.errorMessage = "FORBIDDEN"; } } exports.ForbiddenError = ForbiddenError; /** * An attempt to invoke a non-existent object, such as a method. */ class NotFoundError extends RPCError { constructor() { super(...arguments); this.code = 404; this.errorMessage = "NOT_FOUND"; } } exports.NotFoundError = NotFoundError; /** * Errors related to invalid authorization key, like * AUTH_KEY_DUPLICATED which can cause the connection to fail. */ class AuthKeyError extends RPCError { constructor() { super(...arguments); this.code = 406; this.errorMessage = "AUTH_KEY"; } } exports.AuthKeyError = AuthKeyError; /** * The maximum allowed number of attempts to invoke the given method * with the given input parameters has been exceeded. For example, in an * attempt to request a large number of text messages (SMS) for the same * phone number. */ class FloodError extends RPCError { constructor() { super(...arguments); this.code = 420; this.errorMessage = "FLOOD"; } } exports.FloodError = FloodError; /** * An internal server error occurred while a request was being processed * for example, there was a disruption while accessing a database or file * storage */ class ServerError extends RPCError { constructor() { super(...arguments); this.code = 500; // Also witnessed as -500 this.errorMessage = "INTERNAL"; } } exports.ServerError = ServerError; /** * Clicking the inline buttons of bots that never (or take to long to) * call ``answerCallbackQuery`` will result in this "special" RPCError. */ class TimedOutError extends RPCError { constructor() { super(...arguments); this.code = 503; // Only witnessed as -503 this.errorMessage = "Timeout"; } } exports.TimedOutError = TimedOutError;