diff --git a/src/express/routes/ctrlpanel/index.ts b/src/express/routes/ctrlpanel/index.ts deleted file mode 100644 index 462d81cd..00000000 --- a/src/express/routes/ctrlpanel/index.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { client, db } from '@/app' -import { numerosParaLetras } from '@/functions' -import { type Request, type Response } from 'express' - -export class CtrlPanel { - /** - * Mostra o total de usuários atuais registrados no dash - */ - public async get (req: Request, res: Response): Promise>> { - try { - const guilds = client.guilds.cache - const dataCtrlPanel: Record = {} - - for (const guild of guilds.values()) { - const { id } = guild - const ctrlUsers = await db.ctrlPanel.table(`${numerosParaLetras(id)}_users`).get('metadata') - const ctrlServer = await db.ctrlPanel.table(`${numerosParaLetras(id)}_servers`).get('metadata') - - dataCtrlPanel[id] = { - ...ctrlUsers, - ...ctrlServer - } - } - - if (dataCtrlPanel !== undefined) { - return res.status(200).json({ - status: 200, - ...dataCtrlPanel - }) - } else { - return res.status(404).json({ - status: 404, - message: 'Nenhuma informação foi encontrada' - }) - } - } catch (error) { - return res.status(500).json({ - status: 500, - error: 'Internal Server Error' - }) - } - } -} -export const Root = new CtrlPanel() diff --git a/src/express/routes/ctrlpanel/voucher/create.ts b/src/express/routes/ctrlpanel/voucher/create.ts deleted file mode 100644 index 4aca596e..00000000 --- a/src/express/routes/ctrlpanel/voucher/create.ts +++ /dev/null @@ -1,73 +0,0 @@ -import axios from 'axios' -import { type Request, type Response } from 'express' -import randomstring from 'randomstring' - -interface createCtrlPanelVoucher { - user: { id: string, name: string } - guild: { id: string, name: string } - credits: number - price: number - name: string - token: string - url: string -} -class CreateVoucher { - /** - * Recebe solicitações para a criação de vouchers - */ - public async post (req: Request, res: Response): Promise> | undefined> { - const { user, credits, price, name, url, token } = req.body as createCtrlPanelVoucher - const pass = randomstring.generate({ length: 36 }) - const code = pass.toString() - console.log(req.body) - - try { - if ( - typeof user !== 'object' || - typeof credits !== 'number' || - typeof price !== 'number' || - typeof name !== 'string' || - typeof url !== 'string' || - typeof token !== 'string' - ) { - console.log('Missing required fields') - return res.status(400).json({ - error: 'Bad Request: Missing required fields', - status: 400 - }) - } - const postData = { - memo: `${user.name} (ID: ${user.id}) comprou créditos no valor de R$${price}`, - code, - uses: 1, - credits - } - - const { data, status } = await axios.post(url + '/api/vouchers', postData, { - headers: { - Accept: 'application/json', - Authorization: `Bearer ${token}` - } - }) - if (status === 201 && data.status === 'VALID') { - res.status(201).json({ - code, - id: data.id - }) - } else { - return res.status(500).json({ - error: 'A função createVoucher não retornou corretamente o code e id', - status: 500 - }) - } - } catch (err) { - console.log(err) - res.status(500).json({ - status: 500, - message: 'Houve um erro na requisição' - }) - } - } -} - -export const Root = new CreateVoucher() diff --git a/src/express/routes/ctrlpanel/voucher/delete.ts b/src/express/routes/ctrlpanel/voucher/delete.ts deleted file mode 100644 index 0a675176..00000000 --- a/src/express/routes/ctrlpanel/voucher/delete.ts +++ /dev/null @@ -1,54 +0,0 @@ -import axios from 'axios' -import { type Request, type Response } from 'express' - -interface deleteCtrlPanelVoucher { - id: string - token: string - url: string -} - -class Voucher { - /** - * Recebe solicitação para deletar vouchers - */ - public async post (req: Request, res: Response): Promise { - const { id, url, token } = req.body as deleteCtrlPanelVoucher - - if ( - id === undefined || - typeof url !== 'string' || - typeof token !== 'string' - ) { - console.log('Missing required fields') - return res.status(400).json({ - error: 'Bad Request: Missing required fields', - status: 400 - }) - } - - try { - const response = await axios.delete(`${url}/api/vouchers/${id}`, { - headers: { - Accept: 'application/json', - Authorization: `Bearer ${token}` - } - }) - - const { data, status } = response - - if (status === 200 && data.status === 'VALID') { - res.status(200).json({ - status: 200 - }) - } - } catch (err) { - console.log(err) - res.status(500).json({ - status: 500, - message: 'Houve um problema' - }) - } - } -} - -export const Root = new Voucher() diff --git a/src/express/routes/payment/create/card.ts b/src/express/routes/payment/create/card.ts deleted file mode 100644 index 8f0557e4..00000000 --- a/src/express/routes/payment/create/card.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { type infoPayment } from '@/interfaces' -import { type Request, type Response } from 'express' -import { MercadoPagoConfig, Payment } from 'mercadopago' - -class CreatePayment { - /** - * post - */ - public async post (req: Request, res: Response): Promise> | undefined> { - const infoPayment = req.body as infoPayment - const { userName, userId, mpToken, price, method, ipn } = infoPayment - - if ( - userName === undefined || - userId === undefined || - mpToken === undefined || - price === undefined || - method === undefined || - ipn === undefined - ) { - return res.status(400).json({ - error: 'Bad Request: Missing required fields', - status: 400 - }) - } - - try { - const client = new MercadoPagoConfig({ accessToken: mpToken }) - - const date = new Date() - date.setDate(date.getDate() + 3) - const isoDate = date.toISOString() - - const payment = await new Payment(client).create({ - body: { - payer: { - first_name: userName, - last_name: userId, - email: `${userId}@gmail.com` - }, - additional_info: { - items: [ - { - id: userId, - title: 'Pagamento Via Discord', - description: `${userName} | R$${price.toFixed(2)}`, - unit_price: price, - quantity: 1, - currency_id: 'BRL' - } - ] - }, - payment_method_id: method, - installments: 1, - notification_url: ipn ?? undefined, - metadata: { - ...infoPayment, - price: Math.round(price * 100) / 100 - }, - date_of_expiration: isoDate - } - }) - const dateStr = (payment.date_of_expiration ?? isoDate) - const expirationDate = new Date(dateStr) - expirationDate.setMinutes(expirationDate.getMinutes()) - const unixTimestamp = Math.floor(expirationDate.getTime() / 1000) - - return res.status(200).json({ unixTimestamp, payment }) - } catch (err) { - console.log(err) - res.status(500).json({ - code: 500, - message: 'Houve um erro na solicitação.' - }) - } - } -} - -export const Root = new CreatePayment() diff --git a/src/express/routes/payment/create/pix.ts b/src/express/routes/payment/create/pix.ts deleted file mode 100644 index 75b8c025..00000000 --- a/src/express/routes/payment/create/pix.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { type infoPayment } from '@/interfaces' -import { type Request, type Response } from 'express' -import { MercadoPagoConfig, Payment } from 'mercadopago' - -class CreatePixPayment { - /** - * Cria um pedido de pagamento para o Mercado Pago - */ - public async post (req: Request, res: Response): Promise> | undefined> { - const { userName, userId, mpToken, price } = req.body as infoPayment - - if ( - userName === undefined || - userId === undefined || - mpToken === undefined || - price === undefined - ) { - return res.status(400).json({ - error: 'Bad Request: Missing required fields', - status: 400 - }) - } - - try { - const date = new Date() - date.setDate(date.getDate() + 1) - const isoDate = date.toISOString() - const client = new MercadoPagoConfig({ accessToken: mpToken }) - const paymentData = await new Payment(client).create({ - body: { - payer: { - first_name: userName, - last_name: userId, - email: `${userId}@gmail.com` - }, - description: `Pagamento Via Discord | ${userName} | R$${(price).toFixed(2)}`, - transaction_amount: Math.round(price * 100) / 100, - payment_method_id: 'pix', - installments: 0 - } - }) - const dateStr = paymentData?.date_of_expiration ?? isoDate - const expirationDate = new Date(dateStr) - expirationDate.setMinutes(expirationDate.getMinutes()) - const unixTimestamp = Math.floor(expirationDate.getTime() / 1000) - - return res.status(200).json({ unixTimestamp, paymentData }) - } catch (err) { - console.log(err) - res.status(500).json({ - code: 500, - message: 'Houve um erro na solicitação.' - }) - } - } -} - -export const Root = new CreatePixPayment()