/
environmentDAO.go
59 lines (46 loc) · 1.33 KB
/
environmentDAO.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package dao
import (
"errors"
"github.com/ditrit/gandalf/core/aggregator/api/utils"
"github.com/google/uuid"
"github.com/ditrit/gandalf/core/models"
"github.com/jinzhu/gorm"
)
func ListEnvironment(database *gorm.DB) (environments []models.Environment, err error) {
err = database.Preload("EnvironmentType").Find(&environments).Error
return
}
func CreateEnvironment(database *gorm.DB, environment *models.Environment) (err error) {
admin, err := utils.GetState(database)
if err == nil {
if admin {
err = database.Create(&environment).Error
} else {
err = errors.New("Invalid state")
}
}
return
}
func ReadEnvironment(database *gorm.DB, id uuid.UUID) (environment models.Environment, err error) {
err = database.Where("id = ?", id).Preload("EnvironmentType").First(&environment).Error
return
}
func UpdateEnvironment(database *gorm.DB, environment models.Environment) (err error) {
err = database.Save(&environment).Error
return
}
func DeleteEnvironment(database *gorm.DB, id uuid.UUID) (err error) {
admin, err := utils.GetState(database)
if err == nil {
if admin {
var environment models.Environment
err = database.Where("id = ?", id).First(&environment).Error
if err == nil {
err = database.Unscoped().Delete(&environment).Error
}
} else {
err = errors.New("Invalid state")
}
}
return
}