func (r *AppRepo) SetRelease(app *ct.App, releaseID string) error { tx, err := r.db.Begin() if err != nil { return err } var release *ct.Release var prevRelease *ct.Release if app.ReleaseID != "" { row := tx.QueryRow("release_select", app.ReleaseID) prevRelease, _ = scanRelease(row) } row := tx.QueryRow("release_select", releaseID) if release, err = scanRelease(row); err != nil { return err } app.ReleaseID = releaseID if err := tx.Exec("app_update_release", app.ID, app.ReleaseID); err != nil { tx.Rollback() return err } if err := createEvent(tx.Exec, &ct.Event{ AppID: app.ID, ObjectID: release.ID, ObjectType: ct.EventTypeAppRelease, }, &ct.AppRelease{ PrevRelease: prevRelease, Release: release, }); err != nil { tx.Rollback() return err } return tx.Commit() }
func (r *AppRepo) SetRelease(app *ct.App, releaseID string) error { tx, err := r.db.Begin() if err != nil { return err } var release *ct.Release row := tx.QueryRow("SELECT release_id, artifact_id, data, created_at FROM releases WHERE release_id = $1 AND deleted_at IS NULL", releaseID) if release, err = scanRelease(row); err != nil { return err } app.ReleaseID = releaseID if _, err := tx.Exec("UPDATE apps SET release_id = $2, updated_at = now() WHERE app_id = $1", app.ID, app.ReleaseID); err != nil { tx.Rollback() return err } if err := createEvent(tx.Exec, &ct.Event{ AppID: app.ID, ObjectID: release.ID, ObjectType: ct.EventTypeAppRelease, }, release); err != nil { tx.Rollback() return err } return tx.Commit() }
func (r *AppRepo) SetRelease(app *ct.App, releaseID string) error { tx, err := r.db.Begin() if err != nil { return err } app.ReleaseID = releaseID if _, err := tx.Exec("UPDATE apps SET release_id = $2, updated_at = now() WHERE app_id = $1", app.ID, app.ReleaseID); err != nil { tx.Rollback() return err } if err := createEvent(tx.Exec, &ct.Event{ AppID: app.ID, ObjectID: app.ID, ObjectType: ct.EventTypeApp, }, app); err != nil { tx.Rollback() return err } return tx.Commit() }