TelegramPWA/src/lib/gramjs/tl/MTProtoRequest.js
2021-05-21 14:50:12 +03:00

49 lines
1.2 KiB
JavaScript

class MTProtoRequest {
constructor() {
this.sent = false;
this.msgId = 0; // long
this.sequence = 0;
this.dirty = false;
this.sendTime = 0;
this.confirmReceived = false;
// These should be overrode
this.constructorId = 0;
this.confirmed = false;
this.responded = false;
}
// these should not be overrode
onSendSuccess() {
this.sendTime = new Date().getTime();
this.sent = true;
}
onConfirm() {
this.confirmReceived = true;
}
needResend() {
return this.dirty || (this.confirmed && !this.confirmReceived && new Date().getTime() - this.sendTime > 3000);
}
// These should be overrode
onSend() {
throw Error(`Not overload ${this.constructor.name}`);
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onResponse(buffer) {
throw Error(`Not overload ${this.constructor.name}`);
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
onException(exception) {
throw Error(`Not overload ${this.constructor.name}`);
}
}
module.exports = MTProtoRequest;