41 lines
620 B
Go
41 lines
620 B
Go
package services
|
|
|
|
import (
|
|
"go-sjles-pta-vote/server/db"
|
|
"go-sjles-pta-vote/server/models"
|
|
)
|
|
|
|
func CreatePoll(poll *models.Poll) (*models.Poll, error) {
|
|
new_poll := models.Poll{}
|
|
|
|
db_conn, err := db.Connect()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer db.Close()
|
|
|
|
stmt, err := db_conn.Prepare(`
|
|
INSERT INTO polls (
|
|
question,
|
|
expires_at
|
|
) VALUES (
|
|
$1,
|
|
$2
|
|
) RETURNING ID;
|
|
`)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
defer stmt.Close()
|
|
|
|
res, err := stmt.Exec(poll.Question, poll.ExpiresAt)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
new_poll.ID, err = res.LastInsertId()
|
|
|
|
return &new_poll, err
|
|
} |