@darkwolf/telegram-bot.lazy.cjs
Version:
Telegram Bot API
97 lines (85 loc) • 2.05 kB
JavaScript
const Helper = require('@darkwolf/helper.cjs')
const types = require('./')
class Document {
constructor(data = {}, context) {
this
.setContext(context)
.setFileId(data.fileId)
.setFileUid(data.fileUid)
.setFileName(data.fileName)
.setThumb(data.thumb)
.setMimeType(data.mimeType)
.setFileSize(data.fileSize)
}
setContext(context = {}) {
this.context = context
return this
}
setFileId(id) {
this.fileId = id
return this
}
setFileUid(uid) {
this.fileUid = uid
return this
}
setFileName(name) {
this.fileName = name
return this
}
setThumb(thumb) {
this.thumb = thumb ? (
thumb instanceof types.PhotoSize ? thumb : new types.PhotoSize(thumb, this.context)
) : undefined
return this
}
setMimeType(type) {
this.mimeType = type
return this
}
setFileSize(size) {
this.fileSize = size
return this
}
getFile() {
return this.context.telegramBot.getFile(this.fileId)
}
toJSON() {
const data = {}
if (this.fileId) {
data.fileId = this.fileId
}
if (this.fileUid) {
data.fileUid = this.fileUid
}
if (Helper.exists(this.fileName)) {
data.fileName = this.fileName
}
if (this.thumb) {
data.thumb = this.thumb.toJSON()
}
if (this.mimeType) {
data.mimeType = this.mimeType
}
if (this.fileSize) {
data.fileSize = this.fileSize
}
return data
}
}
Document.from = (data, context) => new Document(data, context)
Document.fromParams = (params = {}, context) => {
const data = {
fileId: params.file_id,
fileUid: params.file_unique_id,
fileName: params.file_name,
thumb: params.thumb,
mimeType: params.mime_type,
fileSize: params.file_size
}
if (data.thumb) {
data.thumb = types.PhotoSize.fromParams(data.thumb, context)
}
return new Document(data, context)
}
module.exports = Document