From 3c67318d8fcc6f61d766496a092c4be688fe8e75 Mon Sep 17 00:00:00 2001
From: Unknown <joe2010xtmf@163.com>
Date: Wed, 12 Mar 2014 22:27:11 -0400
Subject: [PATCH] Add GetRepositoryByName and GetRepositoryById

---
 models/repo.go | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/models/repo.go b/models/repo.go
index 31c2ae6361..c790dc90a6 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)