2023-01-18 00:56:25 +05:00
const { SlashCommandBuilder , EmbedBuilder } = require ( "discord.js" ) ;
const BaseCommand = require ( "../../base/BaseCommand" ) ,
fetch = require ( "node-fetch" ) ,
moment = require ( "moment" ) ;
class Checkjar extends BaseCommand {
/ * *
*
* @ param { import ( "../base/JaBa" ) } client
* /
constructor ( client ) {
super ( {
command : new SlashCommandBuilder ( )
. setName ( "checkjar" )
. setDescription ( client . translate ( "iat/checkjar:DESCRIPTION" ) )
2023-06-15 19:46:27 +05:00
. setDescriptionLocalizations ( {
2023-07-05 00:58:06 +05:00
uk : client . translate ( "iat/checkjar:DESCRIPTION" , null , "uk-UA" ) ,
ru : client . translate ( "iat/checkjar:DESCRIPTION" , null , "ru-RU" ) ,
2023-06-15 19:46:27 +05:00
} )
2023-01-18 00:56:25 +05:00
. setDMPermission ( false ) ,
aliases : [ ] ,
dirname : _ _dirname ,
ownerOnly : false ,
} ) ;
}
/ * *
*
* @ param { import ( "../../base/JaBa" ) } client
* /
async onLoad ( ) {
//...
}
/ * *
*
* @ param { import ( "../../base/JaBa" ) } client
* @ param { import ( "discord.js" ) . ChatInputCommandInteraction } interaction
* @ param { Object } data
* /
async execute ( client , interaction ) {
await interaction . deferReply ( ) ;
2023-07-02 00:02:31 +05:00
const clientInfo = await fetch ( "https://api.monobank.ua/personal/client-info" , {
2023-01-18 00:56:25 +05:00
method : "GET" ,
headers : {
2023-03-30 11:51:13 +05:00
"X-Token" : client . config . apiKeys . monobankApiKey ,
2023-06-15 22:05:30 +05:00
"Content-Type" : "application/json" ,
} ,
} ) . then ( res => res . json ( ) ) ;
2023-07-02 00:02:31 +05:00
const jar = clientInfo . jars [ 1 ] ;
2023-07-05 00:58:06 +05:00
const jarTransactions = await fetch ( ` https://api.monobank.ua/personal/statement/ ${ jar . id } / ${ Date . now ( ) - 7 * 24 * 60 * 60 * 1000 } / ${ Date . now ( ) } ` , {
2023-06-15 22:05:30 +05:00
method : "GET" ,
headers : {
"X-Token" : client . config . apiKeys . monobankApiKey ,
"Content-Type" : "application/json" ,
2023-01-18 00:56:25 +05:00
} ,
} ) . then ( res => res . json ( ) ) ;
const embed = new EmbedBuilder ( )
. setColor ( client . config . embed . color )
. setFooter ( {
text : client . config . embed . footer ,
} )
2023-07-07 17:34:23 +05:00
. setTimestamp ( )
2023-07-02 00:02:31 +05:00
. setDescription ( ` Текущий баланс: ** ${ jar . balance / Math . pow ( 10 , 2 ) } ** грн \n Требуется на след. месяц: **379,18** грн (по курсу евро на 02.07.2023). \n Здесь указаны последние 10 транзакций. ` ) ;
2023-01-18 00:56:25 +05:00
2023-06-15 22:05:30 +05:00
jarTransactions . length = 10 ;
2023-01-18 00:56:25 +05:00
2023-06-15 22:05:30 +05:00
jarTransactions . forEach ( t => {
2023-01-18 00:56:25 +05:00
const time = moment . unix ( t . time ) ;
embed . addFields ( [
{
name : ` ${ t . description } ` ,
value : ` Дата: ${ time . locale ( "uk-UA" ) . format ( "DD MMMM YYYY, HH:mm" ) } \n Сумма: ${ t . amount / Math . pow ( 10 , 2 ) } грн ` ,
} ,
] ) ;
} ) ;
interaction . editReply ( {
embeds : [ embed ] ,
} ) ;
}
}
2023-07-05 00:58:06 +05:00
module . exports = Checkjar ;