package datastore import ( "code.google.com/p/go.net/context" "github.com/drone/drone/shared/model" ) type Repostore interface { // GetRepo retrieves a specific repo from the // datastore for the given ID. GetRepo(id int64) (*model.Repo, error) // GetRepoName retrieves a repo from the datastore // for the specified remote, owner and name. GetRepoName(remote, owner, name string) (*model.Repo, error) // GetRepoList retrieves a list of all repos from // the datastore accessible by the given user ID. GetRepoList(user *model.User) ([]*model.Repo, error) // PostRepo saves a repo in the datastore. PostRepo(repo *model.Repo) error // PutRepo saves a repo in the datastore. PutRepo(repo *model.Repo) error // DelRepo removes the repo from the datastore. DelRepo(repo *model.Repo) error } // GetRepo retrieves a specific repo from the // datastore for the given ID. func GetRepo(c context.Context, id int64) (*model.Repo, error) { return FromContext(c).GetRepo(id) } // GetRepoName retrieves a repo from the datastore // for the specified remote, owner and name. func GetRepoName(c context.Context, remote, owner, name string) (*model.Repo, error) { return FromContext(c).GetRepoName(remote, owner, name) } // GetRepoList retrieves a list of all repos from // the datastore accessible by the given user ID. func GetRepoList(c context.Context, user *model.User) ([]*model.Repo, error) { return FromContext(c).GetRepoList(user) } // PostRepo saves a repo in the datastore. func PostRepo(c context.Context, repo *model.Repo) error { return FromContext(c).PostRepo(repo) } // PutRepo saves a repo in the datastore. func PutRepo(c context.Context, repo *model.Repo) error { return FromContext(c).PutRepo(repo) } // DelRepo removes the repo from the datastore. func DelRepo(c context.Context, repo *model.Repo) error { return FromContext(c).DelRepo(repo) }