53 lines
889 B
Go
53 lines
889 B
Go
// Package sw will represent the sw
|
|
package sw
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/ESilva15/PTInvCertSWDB/config"
|
|
models "github.com/ESilva15/PTInvCertSWDB/sw/models"
|
|
repo "github.com/ESilva15/PTInvCertSWDB/sw/repo"
|
|
)
|
|
|
|
const (
|
|
FILEDB = "YAML"
|
|
POSTGRES = "PG"
|
|
)
|
|
|
|
var service *SWService
|
|
|
|
type SWService struct {
|
|
SWRepo repo.SWRepo
|
|
}
|
|
|
|
func StartSWService() error {
|
|
cfg := config.GetInstance()
|
|
|
|
var err error
|
|
var swRepo repo.SWRepo
|
|
|
|
switch cfg.DataBackend {
|
|
case FILEDB:
|
|
swRepo, err = repo.NewYAMLRepo(cfg.YamlBackend.Path)
|
|
if err != nil {
|
|
return errors.New("Failed to create yaml repo: " + err.Error())
|
|
}
|
|
default:
|
|
return errors.New("chosen persistence backend not implemented yet")
|
|
}
|
|
|
|
service = &SWService{
|
|
SWRepo: swRepo,
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func Get(id int) (models.SW, error) {
|
|
return service.SWRepo.Get(id)
|
|
}
|
|
|
|
func Count() int {
|
|
return service.SWRepo.Count()
|
|
}
|