blob: d2b8585b89072bc183e4216beb345a593161c629 (
plain) (
tree)
|
|
package models
import (
"database/sql"
"time"
)
type Person struct {
ID string
FirstName string
LastName string
OrganisationName string
OrganisationID int
RoleName string
Created time.Time
}
type PersonModel struct {
DB *sql.DB
}
func (m *PersonModel) ListAll() ([]Person, error) {
stmt := `SELECT p.id, p.first_name, p.last_name, p.role_name, org.name, org.id
FROM persons p
INNER JOIN organisations org ON p.organisation_id=org.id`
rows, err := m.DB.Query(stmt)
if err != nil {
return nil, err
}
defer rows.Close()
var ps []Person
for rows.Next() {
var p Person
err = rows.Scan(&p.ID, &p.FirstName, &p.LastName, &p.RoleName, &p.OrganisationName, &p.OrganisationID)
if err != nil {
return nil, err
}
ps = append(ps, p)
}
if err = rows.Err(); err != nil {
return nil, err
}
return ps, err
}
|