From 1d1e40ffbf202afc6ab4f28148d5350133dee6d1 Mon Sep 17 00:00:00 2001 From: "Gustavo \"Guz\" L. de Mello" Date: Mon, 12 Aug 2024 09:56:59 -0300 Subject: [PATCH] feat(guildb,sqlite): message insert and update --- internals/guilddb/sqlite.go | 44 +++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/internals/guilddb/sqlite.go b/internals/guilddb/sqlite.go index 38e0706..9918fc5 100644 --- a/internals/guilddb/sqlite.go +++ b/internals/guilddb/sqlite.go @@ -87,14 +87,54 @@ func (db *SQLiteDB) MessageInsert(m Message) error { return nil } -func (db *SQLiteDB) TranslatedMessages(originID, originChannelID string) ([]Message, error) { +func (db *SQLiteDB) MessageUpdate(message Message) error { + r, err := db.sql.Exec(` + UPDATE guild-v1.messages + SET Language = $1 + WHERE "ID" = $2 AND "ChannelID" = $3 + `, message.Language, message.ID, message.ChannelID) + + if err != nil { + return errors.Join(ErrInternal, err) + } else if rows, _ := r.RowsAffected(); rows == 0 { + return ErrNoAffect + } + + return nil +} + +func (db *SQLiteDB) MessageDelete(message Message) error { + _, err := db.sql.Exec(` + DELETE guild-v1.channels + WHERE "OriginID" = $1 AND "OriginChannelID" = $2 + `, message.ID, message.ChannelID) + + if err != nil { + return errors.Join(ErrInternal, err) + } + + r, err := db.sql.Exec(` + DELETE guild-v1.channels + WHERE "ID" = $1 AND "ChannelID" = $2 + `, message.ID, message.ChannelID) + + if err != nil { + return errors.Join(ErrInternal, err) + } else if rows, _ := r.RowsAffected(); rows == 0 { + return ErrNoAffect + } + + return nil +} + +func (db *SQLiteDB) MessagesWithOrigin(originID, originChannelID string) ([]Message, error) { return db.selectMessages(` SELECT * FROM guild-v1.messages WHERE "OriginID" = $1 AND "OriginChannelID" = $2 `, originID, originChannelID) } -func (db *SQLiteDB) TranslatedMessageByLang(originID, originChannelID string, language lang.Language) (Message, error) { +func (db *SQLiteDB) MessageWithOriginByLang(originID, originChannelID string, language lang.Language) (Message, error) { return db.selectMessage(` SELECT * FROM guild-v1.messages WHERE "OriginID" = $1 AND "OriginChannelID" = $2 AND "Language" = $3