Semaphore/db/Environment.go

32 lines
853 B
Go
Raw Permalink Normal View History

2017-02-23 06:12:16 +01:00
package db
2016-04-04 15:44:34 +02:00
2021-11-02 20:30:45 +01:00
import (
"encoding/json"
)
// Environment is used to pass additional arguments, in json form to ansible
2016-04-04 15:44:34 +02:00
type Environment struct {
ID int `db:"id" json:"id"`
Name string `db:"name" json:"name" binding:"required"`
ProjectID int `db:"project_id" json:"project_id"`
Password *string `db:"password" json:"password"`
JSON string `db:"json" json:"json" binding:"required"`
ENV *string `db:"env" json:"env" binding:"required"`
2016-04-04 15:44:34 +02:00
}
2021-11-02 20:30:45 +01:00
func (env *Environment) Validate() error {
if env.Name == "" {
return &ValidationError{"Environment name can not be empty"}
2021-11-02 20:30:45 +01:00
}
if !json.Valid([]byte(env.JSON)) {
return &ValidationError{"Extra variables must be valid JSON"}
}
if env.ENV != nil && !json.Valid([]byte(*env.ENV)) {
return &ValidationError{"Environment variables must be valid JSON"}
2021-11-02 20:30:45 +01:00
}
return nil
2022-02-03 08:05:13 +01:00
}