summaryrefslogblamecommitdiffstats
path: root/internal/models/operation.go
blob: abb874cc9e7150a4e58e7a6ee335f5b9409d1aff (plain) (tree)
1
2
3
4
5
6
7
8



                      
              


                       




                                  

 
                            

                  






























                                                                                                                                                          
package models

import (
	"database/sql"
	"time"
)

type Operation struct {
	ID               int
	Name             string
	Description      string
	Created          time.Time
	OrganisationName string
}

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
}