diff --git a/server/db/db.go b/server/db/db.go index 100b1c4a515e1139221645add3f666a329a338eb..47153bb7bf70490b5400d53fdb458ebd6b39a7a2 100644 --- a/server/db/db.go +++ b/server/db/db.go @@ -35,6 +35,7 @@ type RepoStore interface { AddRepo(name, projectName, description string, isPrivate bool) error DeleteRepo(string) error GetRepo(string) (*types.Repo, error) + SetRepoName(string, string) error SetRepoProjectName(string, string) error SetRepoDescription(string, string) error SetRepoPrivate(string, bool) error diff --git a/server/db/fakedb/db.go b/server/db/fakedb/db.go index d4913b3a93b2d04500df142c63a17900f826e8e7..cac36f9f6890c6222da5ecca622aaef9758ab46b 100644 --- a/server/db/fakedb/db.go +++ b/server/db/fakedb/db.go @@ -130,6 +130,11 @@ func (*FakeDB) GetRepo(string) (*types.Repo, error) { return nil, nil } +// SetRepoName implements db.Store. +func (*FakeDB) SetRepoName(string, string) error { + return nil +} + // SetRepoDescription implements db.Store. func (*FakeDB) SetRepoDescription(string, string) error { return nil diff --git a/server/db/sqlite/sql.go b/server/db/sqlite/sql.go index 8ab1a885a8cb3d9540f31c92a7126079521dc95c..04ccc49693cbc8572379e3e8d33ad9334d06a9f7 100644 --- a/server/db/sqlite/sql.go +++ b/server/db/sqlite/sql.go @@ -76,6 +76,7 @@ var ( sqlDeleteRepo = `DELETE FROM repo WHERE id = ?;` sqlDeleteRepoWithName = `DELETE FROM repo WHERE name = ?;` sqlSelectRepoByName = `SELECT id, name, project_name, description, private, created_at, updated_at FROM repo WHERE name = ?;` + sqlUpdateRepoNameByName = `UPDATE repo SET name = ?, updated_at = CURRENT_TIMESTAMP WHERE name = ?;` sqlUpdateRepoProjectNameByName = `UPDATE repo SET project_name = ?, updated_at = CURRENT_TIMESTAMP WHERE name = ?;` sqlUpdateRepoDescriptionByName = `UPDATE repo SET description = ?, updated_at = CURRENT_TIMESTAMP WHERE name = ?;` sqlUpdateRepoPrivateByName = `UPDATE repo SET private = ?, updated_at = CURRENT_TIMESTAMP WHERE name = ?;` diff --git a/server/db/sqlite/sqlite.go b/server/db/sqlite/sqlite.go index 055b2512f79ea934e7a681663545f242f3c73c86..1772f9d883cecd2ebe89b59c689f6271313b4fbe 100644 --- a/server/db/sqlite/sqlite.go +++ b/server/db/sqlite/sqlite.go @@ -308,6 +308,16 @@ func (d *Sqlite) GetRepo(name string) (*types.Repo, error) { return &r, nil } +// SetRepoName sets the repo name. +func (d *Sqlite) SetRepoName(name string, newName string) error { + name = strings.ToLower(name) + newName = strings.ToLower(newName) + return d.wrapTransaction(func(tx *sql.Tx) error { + _, err := tx.Exec(sqlUpdateRepoNameByName, newName, name) + return err + }) +} + // SetRepoProjectName sets the repo project name. func (d *Sqlite) SetRepoProjectName(name string, projectName string) error { name = strings.ToLower(name)