From 9eaa34d7fe54ffe13fc6e6e817e3b12e91e54bab Mon Sep 17 00:00:00 2001 From: Suraj B M Date: Sun, 28 Sep 2025 10:55:48 +0530 Subject: [PATCH] refactor: move db related functions to db.go --- cmd/utils/db.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++ cmd/utils/other.go | 45 ------------------------------------ 2 files changed, 57 insertions(+), 45 deletions(-) diff --git a/cmd/utils/db.go b/cmd/utils/db.go index 339e16a..a79590e 100644 --- a/cmd/utils/db.go +++ b/cmd/utils/db.go @@ -1,6 +1,7 @@ package utils import ( + "errors" "path" "gorm.io/driver/sqlite" @@ -40,3 +41,59 @@ func MigrateDb() { panic(err) } } + +func GetProjects(name string) ([]Project, error) { + InitDb() + + var dbProjects []Project + result := DB.Where("name = ?", name).Find(&dbProjects) + + if result.Error != nil { + return nil, errors.New("Some error occured: " + result.Error.Error()) + } + return dbProjects, nil +} + +func GetProject(name string) (Project, error) { + InitDb() + + var dbProject Project + result := DB.Where("name = ?", name).First(&dbProject) + + if result.Error != nil { + if errors.Is(result.Error, gorm.ErrRecordNotFound) { + return Project{}, errors.New("Project with the name " + name + " not found in the database") + } else { + return Project{}, errors.New("Some error occured: " + result.Error.Error()) + } + } + return dbProject, nil +} + +func GetEnvironments(project uint) ([]Environment, error) { + InitDb() + + var dbEnvs []Environment + result := DB.Where("project_id = ?", project).Find(&dbEnvs) + + if result.Error != nil { + return nil, errors.New("Some error occured: " + result.Error.Error()) + } + return dbEnvs, nil +} + +func GetEnvironment(project uint, environment string) (Environment, error) { + InitDb() + + var dbEnv Environment + result := DB.Where("project_id = ? AND name = ?", project, environment).First(&dbEnv) + + if result.Error != nil { + if errors.Is(result.Error, gorm.ErrRecordNotFound) { + return Environment{}, errors.New("Environment with the name " + environment + " not found in the database") + } else { + return Environment{}, errors.New("Some error occured: " + result.Error.Error()) + } + } + return dbEnv, nil +} diff --git a/cmd/utils/other.go b/cmd/utils/other.go index 546e21a..2a1e57b 100644 --- a/cmd/utils/other.go +++ b/cmd/utils/other.go @@ -9,7 +9,6 @@ import ( "strings" "github.com/pelletier/go-toml" - "gorm.io/gorm" ) func StopIfErr(err error) { @@ -71,50 +70,6 @@ func WriteEnvy(tree *toml.Tree) error { return nil } -func GetProject(name string) (Project, error) { - InitDb() - - var dbProject Project - result := DB.Where("name = ?", name).First(&dbProject) - - if result.Error != nil { - if errors.Is(result.Error, gorm.ErrRecordNotFound) { - return Project{}, errors.New("Project with the name " + name + " not found in the database") - } else { - return Project{}, errors.New("Some error occured: " + result.Error.Error()) - } - } - return dbProject, nil -} - -func GetEnvironments(project uint) ([]Environment, error) { - InitDb() - - var dbEnvs []Environment - result := DB.Where("project_id = ?", project).Find(&dbEnvs) - - if result.Error != nil { - return nil, errors.New("Some error occured: " + result.Error.Error()) - } - return dbEnvs, nil -} - -func GetEnvironment(project uint, environment string) (Environment, error) { - InitDb() - - var dbEnv Environment - result := DB.Where("project_id = ? AND name = ?", project, environment).First(&dbEnv) - - if result.Error != nil { - if errors.Is(result.Error, gorm.ErrRecordNotFound) { - return Environment{}, errors.New("Environment with the name " + environment + " not found in the database") - } else { - return Environment{}, errors.New("Some error occured: " + result.Error.Error()) - } - } - return dbEnv, nil -} - func ParseEnv(env string) string { re := regexp.MustCompile(`^\s*(#?)\s*([A-Z0-9_]+)\s*=\s*(?:"([^"\n]+)"|([^"\n]+))$`)