mirror of
https://github.com/silicoflare/envy.git
synced 2026-05-26 19:57:59 +05:30
feat: test duplicate project and env name
This commit is contained in:
@@ -2,6 +2,7 @@ package cmd
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"envy/cmd/utils"
|
"envy/cmd/utils"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
@@ -42,12 +43,23 @@ var createCmd = &cobra.Command{
|
|||||||
|
|
||||||
environment := ""
|
environment := ""
|
||||||
|
|
||||||
|
envs, err := utils.GetEnvironments(dbProject.ID)
|
||||||
|
utils.StopIfErr(err)
|
||||||
|
|
||||||
form := huh.NewForm(
|
form := huh.NewForm(
|
||||||
huh.NewGroup(
|
huh.NewGroup(
|
||||||
huh.NewInput().
|
huh.NewInput().
|
||||||
Title("Environment name").
|
Title("Environment name").
|
||||||
Prompt("? ").
|
Prompt("? ").
|
||||||
Validate(utils.NoSpace).
|
Validate(utils.NoSpace).
|
||||||
|
Validate(func(input string) error {
|
||||||
|
for _, en := range envs {
|
||||||
|
if en.Name == input {
|
||||||
|
return errors.New("this name is used")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}).
|
||||||
Value(&environment),
|
Value(&environment),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@@ -86,6 +98,9 @@ var createCmd = &cobra.Command{
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dbProjects, err := utils.GetProjects()
|
||||||
|
utils.StopIfErr(err)
|
||||||
|
|
||||||
project := ""
|
project := ""
|
||||||
environment := ""
|
environment := ""
|
||||||
|
|
||||||
@@ -95,6 +110,14 @@ var createCmd = &cobra.Command{
|
|||||||
Title("Project name").
|
Title("Project name").
|
||||||
Prompt("? ").
|
Prompt("? ").
|
||||||
Validate(utils.NoSpace).
|
Validate(utils.NoSpace).
|
||||||
|
Validate(func(input string) error {
|
||||||
|
for _, pr := range dbProjects {
|
||||||
|
if pr.Name == input {
|
||||||
|
return errors.New("this name is used")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}).
|
||||||
Value(&project),
|
Value(&project),
|
||||||
|
|
||||||
huh.NewInput().
|
huh.NewInput().
|
||||||
@@ -105,7 +128,7 @@ var createCmd = &cobra.Command{
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
err := form.Run()
|
err = form.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
utils.ErrPrint("Some error occured:", err.Error())
|
utils.ErrPrint("Some error occured:", err.Error())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,11 +42,11 @@ func MigrateDb() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetProjects(name string) ([]Project, error) {
|
func GetProjects() ([]Project, error) {
|
||||||
InitDb()
|
InitDb()
|
||||||
|
|
||||||
var dbProjects []Project
|
var dbProjects []Project
|
||||||
result := DB.Where("name = ?", name).Find(&dbProjects)
|
result := DB.Find(&dbProjects)
|
||||||
|
|
||||||
if result.Error != nil {
|
if result.Error != nil {
|
||||||
return nil, errors.New("Some error occured: " + result.Error.Error())
|
return nil, errors.New("Some error occured: " + result.Error.Error())
|
||||||
|
|||||||
Reference in New Issue
Block a user