@@ -3,7 +3,6 @@ package environment
33import (
44 "database/sql"
55 "fmt"
6- "time"
76
87 "github.com/go-gorp/gorp"
98 "github.com/lib/pq"
@@ -16,11 +15,14 @@ import (
1615func LoadAllByIDs (db gorp.SqlExecutor , ids []int64 ) ([]sdk.Environment , error ) {
1716 var envs []sdk.Environment
1817
19- query := `SELECT environment.id, environment.name, environment.last_modified, environment.from_repository, project.projectkey
20- FROM environment
21- JOIN project ON project.id = environment.project_id
22- WHERE environment.id = ANY($1)
23- ORDER by environment.name`
18+ query := `
19+ SELECT environment.id, environment.name, environment.project_id, environment.created,
20+ environment.last_modified, environment.from_repository, project.projectkey
21+ FROM environment
22+ JOIN project ON project.id = environment.project_id
23+ WHERE environment.id = ANY($1)
24+ ORDER by environment.name
25+ `
2426 rows , err := db .Query (query , pq .Int64Array (ids ))
2527 if err != nil {
2628 if err == sql .ErrNoRows {
@@ -32,13 +34,10 @@ func LoadAllByIDs(db gorp.SqlExecutor, ids []int64) ([]sdk.Environment, error) {
3234
3335 for rows .Next () {
3436 var env sdk.Environment
35- var lastModified time.Time
36- var projectKey string
37- if err := rows .Scan (& env .ID , & env .Name , & lastModified , & env .FromRepository , & projectKey ); err != nil {
37+ if err := rows .Scan (& env .ID , & env .Name , & env .ProjectID , & env .Created ,
38+ & env .LastModified , & env .FromRepository , & env .ProjectKey ); err != nil {
3839 return envs , sdk .WithStack (err )
3940 }
40- env .LastModified = lastModified .Unix ()
41- env .ProjectKey = projectKey
4241 envs = append (envs , env )
4342 }
4443 rows .Close ()
@@ -55,28 +54,29 @@ func LoadAllByIDs(db gorp.SqlExecutor, ids []int64) ([]sdk.Environment, error) {
5554func LoadEnvironments (db gorp.SqlExecutor , projectKey string ) ([]sdk.Environment , error ) {
5655 var envs []sdk.Environment
5756
58- query := `SELECT environment.id, environment.name, environment.last_modified, environment.from_repository
59- FROM environment
60- JOIN project ON project.id = environment.project_id
61- WHERE project.projectKey = $1
62- ORDER by environment.name`
57+ query := `
58+ SELECT environment.id, environment.name, environment.project_id, environment.created,
59+ environment.last_modified, environment.from_repository, project.projectkey
60+ FROM environment
61+ JOIN project ON project.id = environment.project_id
62+ WHERE project.projectKey = $1
63+ ORDER by environment.name
64+ `
6365 rows , err := db .Query (query , projectKey )
6466 if err != nil {
6567 if err == sql .ErrNoRows {
66- return envs , sdk .ErrNoEnvironment
68+ return envs , sdk .WithStack ( sdk . ErrNoEnvironment )
6769 }
6870 return envs , sdk .WithStack (err )
6971 }
7072 defer rows .Close ()
7173
7274 for rows .Next () {
7375 var env sdk.Environment
74- var lastModified time. Time
75- if err := rows . Scan ( & env .ID , & env .Name , & lastModified , & env .FromRepository ); err != nil {
76+ if err := rows . Scan ( & env . ID , & env . Name , & env . ProjectID , & env . Created ,
77+ & env .LastModified , & env .FromRepository , & env .ProjectKey ); err != nil {
7678 return envs , sdk .WithStack (err )
7779 }
78- env .LastModified = lastModified .Unix ()
79- env .ProjectKey = projectKey
8080 envs = append (envs , env )
8181 }
8282 rows .Close ()
@@ -112,10 +112,15 @@ func LoadEnvironmentByID(db gorp.SqlExecutor, ID int64) (*sdk.Environment, error
112112 return & sdk .DefaultEnv , nil
113113 }
114114 var env sdk.Environment
115- query := `SELECT environment.id, environment.name, environment.project_id, environment.from_repository
116- FROM environment
117- WHERE id = $1`
118- if err := db .QueryRow (query , ID ).Scan (& env .ID , & env .Name , & env .ProjectID , & env .FromRepository ); err != nil {
115+ query := `
116+ SELECT environment.id, environment.name, environment.project_id, environment.created,
117+ environment.last_modified, environment.from_repository, project.projectkey
118+ FROM environment
119+ JOIN project ON project.id = environment.project_id
120+ WHERE environment.id = $1
121+ `
122+ if err := db .QueryRow (query , ID ).Scan (& env .ID , & env .Name , & env .ProjectID , & env .Created ,
123+ & env .LastModified , & env .FromRepository , & env .ProjectKey ); err != nil {
119124 if err == sql .ErrNoRows {
120125 return nil , sdk .WithStack (sdk .ErrEnvironmentNotFound )
121126 }
@@ -131,19 +136,20 @@ func LoadEnvironmentByName(db gorp.SqlExecutor, projectKey, envName string) (*sd
131136 }
132137
133138 var env sdk.Environment
134- query := `SELECT environment.id, environment.name, environment.project_id, environment.from_repository, environment.last_modified
135- FROM environment
136- JOIN project ON project.id = environment.project_id
137- WHERE project.projectKey = $1 AND environment.name = $2`
138- var lastModified time.Time
139- if err := db .QueryRow (query , projectKey , envName ).Scan (& env .ID , & env .Name , & env .ProjectID , & env .FromRepository , & lastModified ); err != nil {
139+ query := `
140+ SELECT environment.id, environment.name, environment.project_id, environment.created,
141+ environment.last_modified, environment.from_repository, project.projectkey
142+ FROM environment
143+ JOIN project ON project.id = environment.project_id
144+ WHERE project.projectKey = $1 AND environment.name = $2
145+ `
146+ if err := db .QueryRow (query , projectKey , envName ).Scan (& env .ID , & env .Name , & env .ProjectID , & env .Created ,
147+ & env .LastModified , & env .FromRepository , & env .ProjectKey ); err != nil {
140148 if err == sql .ErrNoRows {
141149 return nil , sdk .WithData (sdk .ErrEnvironmentNotFound , envName )
142150 }
143151 return nil , sdk .WithStack (err )
144152 }
145- env .LastModified = lastModified .Unix ()
146- env .ProjectKey = projectKey
147153 return & env , sdk .WithStack (loadDependencies (db , & env ))
148154}
149155
@@ -220,15 +226,14 @@ func loadDependencies(db gorp.SqlExecutor, env *sdk.Environment) error {
220226
221227// InsertEnvironment Insert new environment
222228func InsertEnvironment (db gorp.SqlExecutor , env * sdk.Environment ) error {
223- query := `INSERT INTO environment (name, project_id, from_repository) VALUES($1, $2, $3) RETURNING id, last_modified`
229+ query := `INSERT INTO environment (name, project_id, from_repository) VALUES($1, $2, $3) RETURNING id, created, last_modified`
224230
225231 rx := sdk .NamePatternRegex
226232 if ! rx .MatchString (env .Name ) {
227233 return sdk .NewError (sdk .ErrInvalidName , fmt .Errorf ("Invalid environment name. It should match %s" , sdk .NamePattern ))
228234 }
229235
230- var lastModified time.Time
231- err := db .QueryRow (query , env .Name , env .ProjectID , env .FromRepository ).Scan (& env .ID , & lastModified )
236+ err := db .QueryRow (query , env .Name , env .ProjectID , env .FromRepository ).Scan (& env .ID , & env .Created , & env .LastModified )
232237 if err != nil {
233238 pqerr , ok := err .(* pq.Error )
234239 if ok {
@@ -238,7 +243,6 @@ func InsertEnvironment(db gorp.SqlExecutor, env *sdk.Environment) error {
238243 }
239244 return err
240245 }
241- env .LastModified = lastModified .Unix ()
242246 return nil
243247}
244248
0 commit comments