fix(vote): fix bulk del sql issue
This commit is contained in:
@@ -3,6 +3,7 @@ package database
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"tomatentum.net/outfit-voting-abi26/internal/util"
|
"tomatentum.net/outfit-voting-abi26/internal/util"
|
||||||
@@ -16,7 +17,7 @@ const BULKINSERTVOTEENTRY string = "INSERT INTO vote(id, category, name, votes)
|
|||||||
const SETVOTE string = "UPDATE vote SET votes = $1 WHERE id = $2"
|
const SETVOTE string = "UPDATE vote SET votes = $1 WHERE id = $2"
|
||||||
const INCVOTE string = "UPDATE vote SET votes = votes + 1 WHERE id = $1"
|
const INCVOTE string = "UPDATE vote SET votes = votes + 1 WHERE id = $1"
|
||||||
const DELVOTEENTRY string = "DELETE FROM vote WHERE id = $1"
|
const DELVOTEENTRY string = "DELETE FROM vote WHERE id = $1"
|
||||||
const BULKDELVOTEENTRY string = "DELETE FROM vote WHERE key IN (%s)"
|
const BULKDELVOTEENTRY string = "DELETE FROM vote WHERE id IN (%s)"
|
||||||
const GETVOTES string = "SELECT * FROM vote ORDER BY votes DESC"
|
const GETVOTES string = "SELECT * FROM vote ORDER BY votes DESC"
|
||||||
const GETVOTEOPTIONS string = "SELECT id, category, name FROM vote"
|
const GETVOTEOPTIONS string = "SELECT id, category, name FROM vote"
|
||||||
const GETVOTE string = "SELECT * FROM vote WHERE id = $1"
|
const GETVOTE string = "SELECT * FROM vote WHERE id = $1"
|
||||||
@@ -120,12 +121,16 @@ func DelVoteEntry(id string) error {
|
|||||||
func BulkDelVoteEntry(ids []string) error {
|
func BulkDelVoteEntry(ids []string) error {
|
||||||
|
|
||||||
placeholders := make([]string, len(ids))
|
placeholders := make([]string, len(ids))
|
||||||
|
args := make([]any, len(ids))
|
||||||
|
|
||||||
for i := 0; i < len(ids); i++ {
|
for i := 0; i < len(ids); i++ {
|
||||||
placeholders = append(placeholders, fmt.Sprintf("$%d", i))
|
placeholders[i] = fmt.Sprintf("$%d", i+1)
|
||||||
|
args[i] = ids[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
res, err := db.Exec(fmt.Sprintf(BULKDELVOTEENTRY, strings.Join(placeholders, ", ")), ids)
|
stmnt := fmt.Sprintf(BULKDELVOTEENTRY, strings.Join(placeholders, ", "))
|
||||||
|
log.Println(stmnt)
|
||||||
|
res, err := db.Exec(stmnt, args...)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user