diff --git a/api/log/create_service.go b/api/log/create_service.go index dd559073c..c6014f09b 100644 --- a/api/log/create_service.go +++ b/api/log/create_service.go @@ -113,7 +113,7 @@ func CreateServiceLog(c *gin.Context) { input.SetRepoID(r.GetID()) // send API call to create the logs - err = database.FromContext(c).CreateLog(input) + l, err := database.FromContext(c).CreateLog(input) if err != nil { retErr := fmt.Errorf("unable to create logs for service %s: %w", entry, err) @@ -122,8 +122,5 @@ func CreateServiceLog(c *gin.Context) { return } - // send API call to capture the created log - l, _ := database.FromContext(c).GetLogForService(s) - c.JSON(http.StatusCreated, l) } diff --git a/api/log/create_step.go b/api/log/create_step.go index 0f8a1ca5a..5bc83c646 100644 --- a/api/log/create_step.go +++ b/api/log/create_step.go @@ -113,7 +113,7 @@ func CreateStepLog(c *gin.Context) { input.SetRepoID(r.GetID()) // send API call to create the logs - err = database.FromContext(c).CreateLog(input) + l, err := database.FromContext(c).CreateLog(input) if err != nil { retErr := fmt.Errorf("unable to create logs for step %s: %w", entry, err) @@ -122,8 +122,5 @@ func CreateStepLog(c *gin.Context) { return } - // send API call to capture the created log - l, _ := database.FromContext(c).GetLogForStep(s) - c.JSON(http.StatusCreated, l) } diff --git a/api/log/update_service.go b/api/log/update_service.go index 746fd63e5..82b56f13b 100644 --- a/api/log/update_service.go +++ b/api/log/update_service.go @@ -124,7 +124,7 @@ func UpdateServiceLog(c *gin.Context) { } // send API call to update the log - err = database.FromContext(c).UpdateLog(l) + l, err = database.FromContext(c).UpdateLog(l) if err != nil { retErr := fmt.Errorf("unable to update logs for service %s: %w", entry, err) @@ -133,8 +133,5 @@ func UpdateServiceLog(c *gin.Context) { return } - // send API call to capture the updated log - l, _ = database.FromContext(c).GetLogForService(s) - c.JSON(http.StatusOK, l) } diff --git a/api/log/update_step.go b/api/log/update_step.go index a86a74113..dcb4a99d1 100644 --- a/api/log/update_step.go +++ b/api/log/update_step.go @@ -124,7 +124,7 @@ func UpdateStepLog(c *gin.Context) { } // send API call to update the log - err = database.FromContext(c).UpdateLog(l) + l, err = database.FromContext(c).UpdateLog(l) if err != nil { retErr := fmt.Errorf("unable to update logs for step %s: %w", entry, err) @@ -133,8 +133,5 @@ func UpdateStepLog(c *gin.Context) { return } - // send API call to capture the updated log - l, _ = database.FromContext(c).GetLogForStep(s) - c.JSON(http.StatusOK, l) } diff --git a/api/service/plan.go b/api/service/plan.go index 4912f38d1..fecd03f24 100644 --- a/api/service/plan.go +++ b/api/service/plan.go @@ -61,7 +61,7 @@ func PlanServices(database database.Interface, p *pipeline.Build, b *library.Bui l.SetData([]byte{}) // send API call to create the service logs - err = database.CreateLog(l) + _, err = database.CreateLog(l) if err != nil { return services, fmt.Errorf("unable to create service logs for service %s: %w", s.GetName(), err) } diff --git a/api/step/plan.go b/api/step/plan.go index b072cf4f7..c74a52614 100644 --- a/api/step/plan.go +++ b/api/step/plan.go @@ -88,7 +88,7 @@ func planStep(database database.Interface, b *library.Build, c *pipeline.Contain l.SetData([]byte{}) // send API call to create the step logs - err = database.CreateLog(l) + _, err = database.CreateLog(l) if err != nil { return nil, fmt.Errorf("unable to create logs for step %s: %w", s.GetName(), err) } diff --git a/database/log/count_build_test.go b/database/log/count_build_test.go index d462eedf0..e168f80ec 100644 --- a/database/log/count_build_test.go +++ b/database/log/count_build_test.go @@ -43,12 +43,12 @@ func TestLog_Engine_CountLogsForBuild(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_service) + _, err := _sqlite.CreateLog(_service) if err != nil { t.Errorf("unable to create test service log for sqlite: %v", err) } - err = _sqlite.CreateLog(_step) + _, err = _sqlite.CreateLog(_step) if err != nil { t.Errorf("unable to create test step log for sqlite: %v", err) } diff --git a/database/log/count_test.go b/database/log/count_test.go index 99e75a767..2af820203 100644 --- a/database/log/count_test.go +++ b/database/log/count_test.go @@ -37,12 +37,12 @@ func TestLog_Engine_CountLogs(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_service) + _, err := _sqlite.CreateLog(_service) if err != nil { t.Errorf("unable to create test service log for sqlite: %v", err) } - err = _sqlite.CreateLog(_step) + _, err = _sqlite.CreateLog(_step) if err != nil { t.Errorf("unable to create test step log for sqlite: %v", err) } diff --git a/database/log/create.go b/database/log/create.go index 978da9a1f..b1767c01e 100644 --- a/database/log/create.go +++ b/database/log/create.go @@ -14,7 +14,7 @@ import ( ) // CreateLog creates a new log in the database. -func (e *engine) CreateLog(l *library.Log) error { +func (e *engine) CreateLog(l *library.Log) (*library.Log, error) { // check what the log entry is for switch { case l.GetServiceID() > 0: @@ -33,7 +33,7 @@ func (e *engine) CreateLog(l *library.Log) error { // https://pkg.go.dev/github.com/go-vela/types/database#Log.Validate err := log.Validate() if err != nil { - return err + return nil, err } // compress log data for the resource @@ -43,15 +43,14 @@ func (e *engine) CreateLog(l *library.Log) error { if err != nil { switch { case l.GetServiceID() > 0: - return fmt.Errorf("unable to compress log for service %d for build %d: %w", l.GetServiceID(), l.GetBuildID(), err) + return nil, fmt.Errorf("unable to compress log for service %d for build %d: %w", l.GetServiceID(), l.GetBuildID(), err) case l.GetStepID() > 0: - return fmt.Errorf("unable to compress log for step %d for build %d: %w", l.GetStepID(), l.GetBuildID(), err) + return nil, fmt.Errorf("unable to compress log for step %d for build %d: %w", l.GetStepID(), l.GetBuildID(), err) } } // send query to the database - return e.client. - Table(constants.TableLog). - Create(log). - Error + result := e.client.Table(constants.TableLog).Create(log) + + return log.ToLibrary(), result.Error } diff --git a/database/log/create_test.go b/database/log/create_test.go index 1574e88a8..68e0a2d40 100644 --- a/database/log/create_test.go +++ b/database/log/create_test.go @@ -73,7 +73,7 @@ VALUES ($1,$2,$3,$4,$5,$6) RETURNING "id"`). for _, test := range tests { t.Run(test.name, func(t *testing.T) { for _, log := range test.logs { - err := test.database.CreateLog(log) + _, err := test.database.CreateLog(log) if test.failure { if err == nil { diff --git a/database/log/delete_test.go b/database/log/delete_test.go index 15329a0af..dbfdbca00 100644 --- a/database/log/delete_test.go +++ b/database/log/delete_test.go @@ -29,7 +29,7 @@ func TestLog_Engine_DeleteLog(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_log) + _, err := _sqlite.CreateLog(_log) if err != nil { t.Errorf("unable to create test log for sqlite: %v", err) } diff --git a/database/log/get_service_test.go b/database/log/get_service_test.go index 26f42813c..3ff82d6c8 100644 --- a/database/log/get_service_test.go +++ b/database/log/get_service_test.go @@ -42,7 +42,7 @@ func TestLog_Engine_GetLogForService(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_log) + _, err := _sqlite.CreateLog(_log) if err != nil { t.Errorf("unable to create test log for sqlite: %v", err) } diff --git a/database/log/get_step_test.go b/database/log/get_step_test.go index 39f019039..d092e30a9 100644 --- a/database/log/get_step_test.go +++ b/database/log/get_step_test.go @@ -42,7 +42,7 @@ func TestLog_Engine_GetLogForStep(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_log) + _, err := _sqlite.CreateLog(_log) if err != nil { t.Errorf("unable to create test log for sqlite: %v", err) } diff --git a/database/log/get_test.go b/database/log/get_test.go index 31325e3ac..7127d3165 100644 --- a/database/log/get_test.go +++ b/database/log/get_test.go @@ -35,7 +35,7 @@ func TestLog_Engine_GetLog(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_log) + _, err := _sqlite.CreateLog(_log) if err != nil { t.Errorf("unable to create test log for sqlite: %v", err) } diff --git a/database/log/interface.go b/database/log/interface.go index 8c72a5098..5b71be967 100644 --- a/database/log/interface.go +++ b/database/log/interface.go @@ -31,7 +31,7 @@ type LogInterface interface { // CountLogsForBuild defines a function that gets the count of logs by build ID. CountLogsForBuild(*library.Build) (int64, error) // CreateLog defines a function that creates a new log. - CreateLog(*library.Log) error + CreateLog(*library.Log) (*library.Log, error) // DeleteLog defines a function that deletes an existing log. DeleteLog(*library.Log) error // GetLog defines a function that gets a log by ID. @@ -45,5 +45,5 @@ type LogInterface interface { // ListLogsForBuild defines a function that gets a list of logs by build ID. ListLogsForBuild(*library.Build, int, int) ([]*library.Log, int64, error) // UpdateLog defines a function that updates an existing log. - UpdateLog(*library.Log) error + UpdateLog(*library.Log) (*library.Log, error) } diff --git a/database/log/list_build_test.go b/database/log/list_build_test.go index fb08236e9..7ffcc0f46 100644 --- a/database/log/list_build_test.go +++ b/database/log/list_build_test.go @@ -54,12 +54,12 @@ func TestLog_Engine_ListLogsForBuild(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_service) + _, err := _sqlite.CreateLog(_service) if err != nil { t.Errorf("unable to create test service log for sqlite: %v", err) } - err = _sqlite.CreateLog(_step) + _, err = _sqlite.CreateLog(_step) if err != nil { t.Errorf("unable to create test step log for sqlite: %v", err) } diff --git a/database/log/list_test.go b/database/log/list_test.go index 0cf420255..343af9d5a 100644 --- a/database/log/list_test.go +++ b/database/log/list_test.go @@ -48,12 +48,12 @@ func TestLog_Engine_ListLogs(t *testing.T) { _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_service) + _, err := _sqlite.CreateLog(_service) if err != nil { t.Errorf("unable to create test service log for sqlite: %v", err) } - err = _sqlite.CreateLog(_step) + _, err = _sqlite.CreateLog(_step) if err != nil { t.Errorf("unable to create test step log for sqlite: %v", err) } diff --git a/database/log/update.go b/database/log/update.go index fb7165004..62ba865bc 100644 --- a/database/log/update.go +++ b/database/log/update.go @@ -14,7 +14,7 @@ import ( ) // UpdateLog updates an existing log in the database. -func (e *engine) UpdateLog(l *library.Log) error { +func (e *engine) UpdateLog(l *library.Log) (*library.Log, error) { // check what the log entry is for switch { case l.GetServiceID() > 0: @@ -33,7 +33,7 @@ func (e *engine) UpdateLog(l *library.Log) error { // https://pkg.go.dev/github.com/go-vela/types/database#Log.Validate err := log.Validate() if err != nil { - return err + return nil, err } // compress log data for the resource @@ -43,15 +43,14 @@ func (e *engine) UpdateLog(l *library.Log) error { if err != nil { switch { case l.GetServiceID() > 0: - return fmt.Errorf("unable to compress log for service %d for build %d: %w", l.GetServiceID(), l.GetBuildID(), err) + return nil, fmt.Errorf("unable to compress log for service %d for build %d: %w", l.GetServiceID(), l.GetBuildID(), err) case l.GetStepID() > 0: - return fmt.Errorf("unable to compress log for step %d for build %d: %w", l.GetStepID(), l.GetBuildID(), err) + return nil, fmt.Errorf("unable to compress log for step %d for build %d: %w", l.GetStepID(), l.GetBuildID(), err) } } // send query to the database - return e.client. - Table(constants.TableLog). - Save(log). - Error + result := e.client.Table(constants.TableLog).Save(log) + + return log.ToLibrary(), result.Error } diff --git a/database/log/update_test.go b/database/log/update_test.go index 0b4e8e127..9659cfb65 100644 --- a/database/log/update_test.go +++ b/database/log/update_test.go @@ -47,12 +47,12 @@ WHERE "id" = $6`). _sqlite := testSqlite(t) defer func() { _sql, _ := _sqlite.client.DB(); _sql.Close() }() - err := _sqlite.CreateLog(_service) + _, err := _sqlite.CreateLog(_service) if err != nil { t.Errorf("unable to create test service log for sqlite: %v", err) } - err = _sqlite.CreateLog(_step) + _, err = _sqlite.CreateLog(_step) if err != nil { t.Errorf("unable to create test step log for sqlite: %v", err) } @@ -82,7 +82,7 @@ WHERE "id" = $6`). for _, test := range tests { t.Run(test.name, func(t *testing.T) { for _, log := range test.logs { - err = test.database.UpdateLog(log) + _, err = test.database.UpdateLog(log) if test.failure { if err == nil {