From 38810a3f1b695bbe55d1b83aaa3177373401b2b0 Mon Sep 17 00:00:00 2001 From: Migan178 Date: Tue, 18 Jun 2024 13:10:42 +0900 Subject: [PATCH] feat: rewrite deleteLearn.ts --- package.json | 2 +- src/Commands/deleteLearn.ts | 38 ++++++++++++++++++----- src/modules/database/model/learn.ts | 10 ++++++ src/modules/database/model/nsfwContent.ts | 10 ++++++ src/modules/database/model/statement.ts | 10 ++++++ src/modules/database/run.ts | 2 +- src/modules/database/type.ts | 1 + 7 files changed, 63 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 890006d..7327c35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "muffinbot", - "version": "2.1.0-oreo.b240611a", + "version": "2.1.0-oreo.b240618a", "main": "dist/index.js", "private": true, "dependencies": { diff --git a/src/Commands/deleteLearn.ts b/src/Commands/deleteLearn.ts index 8f12a7b..d3e68a9 100644 --- a/src/Commands/deleteLearn.ts +++ b/src/Commands/deleteLearn.ts @@ -1,5 +1,5 @@ import { Message } from 'discord.js' -import { Command } from '../modules' +import { Command, type LearnData } from '../modules' export default class extends Command { public constructor() { @@ -9,21 +9,43 @@ export default class extends Command { if (!args[0]) { return await msg.channel.send('```머핀아 삭제 (지울 단어)```') } + const command = args[0] const db = msg.client.chatBot.db - const data = await db.learn.findOne(command) + const [data] = await db.learn.execute( + 'SELECT * FROM learn WHERE command = ? AND user_id = ?;', + [command, msg.author.id], + ) + + console.log(data) if (!data[0]) { return await msg.channel.send('해당하는 걸 찾ㅈ을 수 없어요.') } - if (data[0].user_id !== msg.author.id) { - return await msg.channel.send( - '어라 당ㅅ신은 언제 가르쳐 주셨죠?', - ) + console.log(data.length) + + if (data.length > 1) { + console.log('a') + } else { + // await db.learn.delete(command) + // await msg.reply('어라 이제 그ㄱ게 기억이 안나요. 뭐ㅇ였죠?') + console.log('b') } - await db.learn.delete(command) - await msg.reply('어라 이제 그ㄱ게 기억이 안나요.') + await msg.reply('현재 이 기능은 재작성 중입니다.') + + // if (!data[0]) { + // return await msg.channel.send('해당하는 걸 찾ㅈ을 수 없어요.') + // } + // + // if (data[0].user_id !== msg.author.id) { + // return await msg.channel.send( + // '어라 당ㅅ신은 언제 가르쳐 주셨죠?', + // ) + // } + // + // await db.learn.delete(command) + // await msg.reply('어라 이제 그ㄱ게 기억이 안나요.') } } diff --git a/src/modules/database/model/learn.ts b/src/modules/database/model/learn.ts index c6c27ec..0cff1a2 100644 --- a/src/modules/database/model/learn.ts +++ b/src/modules/database/model/learn.ts @@ -69,4 +69,14 @@ export class LearnTable implements BaseTable { ) return rows } + + public async execute(sql: string, values?: any): Promise { + const db = await this._database.getConnection() + let data: any + + await run(db, async () => { + data = await db.execute(sql, [...values]) + }) + return data + } } diff --git a/src/modules/database/model/nsfwContent.ts b/src/modules/database/model/nsfwContent.ts index af08ffa..5abaa29 100644 --- a/src/modules/database/model/nsfwContent.ts +++ b/src/modules/database/model/nsfwContent.ts @@ -61,4 +61,14 @@ export class NSFWContentTable implements BaseTable { ) return rows } + + public async execute(sql: string, values?: any): Promise { + const db = await this._database.getConnection() + let data: any + + await run(db, async () => { + data = await db.execute(sql, [...values]) + }) + return data + } } diff --git a/src/modules/database/model/statement.ts b/src/modules/database/model/statement.ts index f2a07bc..44678b5 100644 --- a/src/modules/database/model/statement.ts +++ b/src/modules/database/model/statement.ts @@ -73,4 +73,14 @@ export class StatementTable implements BaseTable { ) return rows } + + public async execute(sql: string, values?: any): Promise { + const db = await this._database.getConnection() + let data: any + + await run(db, async () => { + data = await db.execute(sql, [...values]) + }) + return data + } } diff --git a/src/modules/database/run.ts b/src/modules/database/run.ts index d1be66f..46362e1 100644 --- a/src/modules/database/run.ts +++ b/src/modules/database/run.ts @@ -1,6 +1,6 @@ import { type PoolConnection } from 'mysql2/promise' -export default async function run(db: PoolConnection, fn: () => Promise) { +export default async function run(db: PoolConnection, fn: () => Promise) { try { await db.beginTransaction() await fn() diff --git a/src/modules/database/type.ts b/src/modules/database/type.ts index 2f42527..c264890 100644 --- a/src/modules/database/type.ts +++ b/src/modules/database/type.ts @@ -33,4 +33,5 @@ export interface BaseTable { update(data: any): Promise delete(key: V): Promise findOneAnotherKey(key: string, data: any): Promise + execute(sql: string, values?: any): Promise }