コード例 #1
0
ファイル: vote-handler.go プロジェクト: laprice/cryptoballot
func saveBallotToDB(ballot *Ballot) error {
	// Frist transform the tagset into an hstore
	var tags hstore.Hstore
	tags.Map = make(map[string]sql.NullString, len(ballot.TagSet))
	for key, value := range ballot.TagSet.Map() {
		tags.Map[key] = sql.NullString{value, true}
	}

	_, err := db.Exec("INSERT INTO ballots_"+ballot.ElectionID+" (ballot_id, ballot, tags) VALUES ($1, $2, $3)", ballot.BallotID, ballot.String(), tags)
	return err
}
コード例 #2
0
func saveElectionToDB(election *Election) error {
	// Frist transform the tagset into an hstore
	var tags hstore.Hstore
	tags.Map = make(map[string]sql.NullString, len(election.TagSet))
	for key, value := range election.TagSet.Map() {
		tags.Map[key] = sql.NullString{String: value, Valid: true}
	}

	_, err := db.Exec("INSERT INTO elections (election_id, election, startdate, enddate, tags) VALUES ($1, $2, $3, $4, $5)", election.ElectionID, election.String(), election.Start, election.End, tags)
	if err != nil {
		return err
	}

	// Create the sigreqa table for storing signature requests
	_, err = db.Exec(strings.Replace(sigreqsQuery, "<election-id>", election.ElectionID, -1))
	if err != nil {
		return err
	}

	//@@TODO - tell ballotbox database about election

	return nil
}