Servis: servisni_log tabela — praćenje datuma događaja za eskalacioni list
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package sqlite
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
|
||||
"ntech/internal/model"
|
||||
)
|
||||
|
||||
// ServisniLogRepo je SQLite implementacija db.ServisniLogRepository
|
||||
type ServisniLogRepo struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
// NoviServisniLogRepo kreira repozitorijum log-a servisnih naloga
|
||||
func NoviServisniLogRepo(baza *sql.DB) *ServisniLogRepo {
|
||||
return &ServisniLogRepo{db: baza}
|
||||
}
|
||||
|
||||
// Kreiraj upisuje novi događaj u log servisnog naloga.
|
||||
func (r *ServisniLogRepo) Kreiraj(ctx context.Context, nalogID int64, dogadjaj string, korisnikID *int64) error {
|
||||
_, err := r.db.ExecContext(ctx,
|
||||
`INSERT INTO servisni_log (nalog_id, dogadjaj, korisnik_id) VALUES (?, ?, ?)`,
|
||||
nalogID, dogadjaj, korisnikID,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
// DohvatiZaNalog vraća sve log zapise za dati nalog, od najstarijeg ka najnovijem.
|
||||
func (r *ServisniLogRepo) DohvatiZaNalog(ctx context.Context, nalogID int64) ([]model.ServisniLog, error) {
|
||||
rows, err := r.db.QueryContext(ctx,
|
||||
`SELECT id, nalog_id, dogadjaj, COALESCE(napomena,''), korisnik_id, datum
|
||||
FROM servisni_log WHERE nalog_id = ? ORDER BY datum ASC`,
|
||||
nalogID,
|
||||
)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
var lista []model.ServisniLog
|
||||
for rows.Next() {
|
||||
var l model.ServisniLog
|
||||
if err := rows.Scan(&l.ID, &l.NalogID, &l.Dogadjaj, &l.Napomena, &l.KorisnikID, &l.Datum); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
lista = append(lista, l)
|
||||
}
|
||||
return lista, rows.Err()
|
||||
}
|
||||
Reference in New Issue
Block a user