Detailed changes
@@ -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
@@ -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
@@ -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 = ?;`
@@ -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)