summaryrefslogtreecommitdiffstats
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/models/operation.go43
1 files changed, 38 insertions, 5 deletions
diff --git a/internal/models/operation.go b/internal/models/operation.go
index 8547030..abb874c 100644
--- a/internal/models/operation.go
+++ b/internal/models/operation.go
@@ -2,15 +2,48 @@ package models
import (
"database/sql"
+ "time"
)
type Operation struct {
- ID int
- Name string
- Description string
- Organisation Organisation
+ ID int
+ Name string
+ Description string
+ Created time.Time
+ OrganisationName string
}
-type OperationMOdel struct {
+type OperationModel struct {
DB *sql.DB
}
+
+func (m *OperationModel) ListAll() ([]Operation, error) {
+
+ stmt := `SELECT op.id, op.name, op.description, op.created, org.name FROM operations op INNER JOIN organisations org ON op.organisation_id=org.id`
+
+ // stmt := `SELECT * FROM operations`
+
+ rows, err := m.DB.Query(stmt)
+ if err != nil {
+ return nil, err
+ }
+
+ defer rows.Close()
+
+ var ops []Operation
+
+ for rows.Next() {
+ var o Operation
+ err = rows.Scan(&o.ID, &o.Name, &o.Description, &o.Created, &o.OrganisationName)
+ if err != nil {
+ return nil, err
+ }
+
+ ops = append(ops, o)
+ }
+
+ if err = rows.Err(); err != nil {
+ return nil, err
+ }
+ return ops, err
+}