aboutsummaryrefslogtreecommitdiff
path: root/models/repo.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo.go')
-rw-r--r--models/repo.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/models/repo.go b/models/repo.go
index 31c2ae63..c790dc90 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -49,6 +49,7 @@ var (
var (
ErrRepoAlreadyExist = errors.New("Repository already exist")
+ ErrRepoNotExist = errors.New("Repository does not exist")
)
func init() {
@@ -225,6 +226,30 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
return nil
}
+func GetRepositoryByName(user *User, repoName string) (*Repository, error) {
+ repo := &Repository{
+ OwnerId: user.Id,
+ LowerName: strings.ToLower(repoName),
+ }
+ has, err := orm.Get(repo)
+ if err != nil {
+ return nil, err
+ } else if !has {
+ return nil, ErrRepoNotExist
+ }
+ return repo, err
+}
+
+func GetRepositoryById(id int64) (repo *Repository, err error) {
+ has, err := orm.Id(id).Get(repo)
+ if err != nil {
+ return nil, err
+ } else if !has {
+ return nil, ErrRepoNotExist
+ }
+ return repo, err
+}
+
// GetRepositories returns the list of repositories of given user.
func GetRepositories(user *User) ([]Repository, error) {
repos := make([]Repository, 0, 10)