Generate voter data for known elections and simplify MaxVoters (0 = no maximum)

This commit is contained in:
2024-12-30 23:01:32 +01:00
parent 218f56c060
commit 195bc7d85e
6 changed files with 132 additions and 47 deletions

36
internal/models/voters.go Normal file
View File

@ -0,0 +1,36 @@
package models
import (
"database/sql"
)
type VoterModelInterface interface {
Insert(identity string, electionID int) (int, error)
}
type VoterModel struct {
DB *sql.DB
}
func (v *VoterModel) Insert(identity string, electionID int) (int, error) {
tx, err := v.DB.Begin()
if err != nil {
return 0, err
}
defer tx.Rollback()
result, err := tx.Exec(`
INSERT INTO voters (identity, election_id)
VALUES (?, ?)`,
identity, electionID)
if err != nil {
return 0, err
}
if err = tx.Commit(); err != nil {
return 0, err
}
voterId, err := result.LastInsertId()
return int(voterId), nil
}