Ajouter dbclient.DBClient.InsertPresence
This commit is contained in:
parent
91ee8738c6
commit
bae70e1569
1 changed files with 28 additions and 0 deletions
|
@ -5,6 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.agecem.com/agecem/bottin-ag/dbschema"
|
"git.agecem.com/agecem/bottin-ag/dbschema"
|
||||||
|
"git.agecem.com/agecem/bottin-ag/dbstruct"
|
||||||
"github.com/jmoiron/sqlx"
|
"github.com/jmoiron/sqlx"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -44,3 +45,30 @@ func (d *DBClient) CreateTablesIfNotExist() error {
|
||||||
_, err := d.DB.Exec(dbschema.Schema)
|
_, err := d.DB.Exec(dbschema.Schema)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
InsertPresence inserts a dbstruct.Presence into the database, returning the
|
||||||
|
values of the inserted presence and any error that occured.
|
||||||
|
*/
|
||||||
|
func (d *DBClient) InsertPresence(presence dbstruct.Presence) (dbstruct.Presence, error) {
|
||||||
|
var insertedPresence dbstruct.Presence
|
||||||
|
var rows *sqlx.Rows
|
||||||
|
|
||||||
|
rows, err := d.DB.NamedQuery(`
|
||||||
|
INSERT INTO presences (id, at, name, programme_id)
|
||||||
|
VALUES (:id, current_timestamp, :name, :programme_id)
|
||||||
|
RETURNING id, at, name, programme_id
|
||||||
|
`, presence)
|
||||||
|
if err != nil {
|
||||||
|
return insertedPresence, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
for rows.Next() {
|
||||||
|
if err := rows.Scan(&insertedPresence.ID, &insertedPresence.At, &insertedPresence.Name, &insertedPresence.ProgrammeID); err != nil {
|
||||||
|
return insertedPresence, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return insertedPresence, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue