Adding tests for adding votes

This commit is contained in:
2025-11-12 16:08:54 -05:00
parent e6fb41b32d
commit 249dbbd603
4 changed files with 248 additions and 10 deletions

View File

@@ -150,7 +150,8 @@ func GetAndCreatePollByQuestion(question string) (*models.Poll, error) {
}
}
func SetVote(poll_id int64, email string, vote bool) error {
// Use models.Vote to set votes
func SetVote(vote *models.Vote) error {
db_conn, err := db.Connect()
if err != nil {
return err
@@ -158,7 +159,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
defer db.Close()
set_voter_stmt, err := db_conn.Prepare(`
INSERT IGNORE INTO voters
INSERT OR IGNORE INTO voters
(poll_id, voter_email)
VALUES ($1, $2)
`)
@@ -167,7 +168,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
}
defer set_voter_stmt.Close()
res, err := set_voter_stmt.Exec(poll_id, email)
res, err := set_voter_stmt.Exec(vote.PollId, vote.Email)
if err != nil {
return err
} else {
@@ -191,7 +192,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
var member_check int64
is_member := true
err = is_voter_member_stmt.QueryRow(email).Scan(&member_check)
err = is_voter_member_stmt.QueryRow(vote.Email).Scan(&member_check)
if err == sql.ErrNoRows {
is_member = false
} else if err != nil {
@@ -205,7 +206,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
member_column_name = "non_" + member_column_name
}
if vote {
if vote.Vote {
member_column_name += "yes_votes"
} else {
member_column_name += "no_votes"
@@ -213,7 +214,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
add_vote_stmt, err := db_conn.Prepare(`
UPDATE polls
SET ` + member_column_name + ` = ` + member_column_name + ` 1
SET ` + member_column_name + ` = ` + member_column_name + ` + 1
WHERE id == $1
`)
if err != nil {
@@ -221,7 +222,7 @@ func SetVote(poll_id int64, email string, vote bool) error {
}
defer add_vote_stmt.Close()
res, err = add_vote_stmt.Exec(poll_id)
res, err = add_vote_stmt.Exec(vote.PollId)
if err != nil {
return err
}