Files
ddns-updater/internal/data/memory.go
Quentin McGaw bdb0c2bf2e Refactor entire Go codebase (#32)
- Small UI adjustments
- Only show last 2 previous IP addresses in notifications and UI
- Database uses interfaces to be modular/pluggable in order to move away from sqlite
- Less dependencies, it even uses a switch statement instead of httprouter
- Updated golibs
- Changed default logging format to `console` (zap)
- Better code overall, modular updater and trigger system
- Refactored readme
- CI script improved
2020-02-22 17:21:32 -05:00

33 lines
654 B
Go

package data
import (
"fmt"
"github.com/qdm12/ddns-updater/internal/models"
)
func (db *database) Insert(record models.Record) (id int) {
db.Lock()
defer db.Unlock()
db.data = append(db.data, record)
return len(db.data) - 1
}
func (db *database) Select(id int) (record models.Record, err error) {
db.RLock()
defer db.RUnlock()
if id < 0 {
return record, fmt.Errorf("id %d cannot be lower than 0", id)
}
if id > len(db.data)-1 {
return record, fmt.Errorf("no record config found for id %d", id)
}
return db.data[id], nil
}
func (db *database) SelectAll() (records []models.Record) {
db.RLock()
defer db.RUnlock()
return db.data
}