@@ -25,7 +25,6 @@ import (
2525 "code.gitea.io/gitea/modules/translation"
2626
2727 "xorm.io/builder"
28- "xorm.io/xorm"
2928)
3029
3130// CommitStatus holds a single Status of a single Commit
@@ -220,57 +219,42 @@ func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus {
220219// CommitStatusOptions holds the options for query commit statuses
221220type CommitStatusOptions struct {
222221 db.ListOptions
222+ RepoID int64
223+ SHA string
223224 State string
224225 SortType string
225226}
226227
227- // GetCommitStatuses returns all statuses for a given commit.
228- func GetCommitStatuses (ctx context.Context , repo * repo_model.Repository , sha string , opts * CommitStatusOptions ) ([]* CommitStatus , int64 , error ) {
229- if opts .Page <= 0 {
230- opts .Page = 1
231- }
232- if opts .PageSize <= 0 {
233- opts .Page = setting .ItemsPerPage
234- }
235-
236- countSession := listCommitStatusesStatement (ctx , repo , sha , opts )
237- countSession = db .SetSessionPagination (countSession , opts )
238- maxResults , err := countSession .Count (new (CommitStatus ))
239- if err != nil {
240- log .Error ("Count PRs: %v" , err )
241- return nil , maxResults , err
228+ func (opts * CommitStatusOptions ) ToConds () builder.Cond {
229+ var cond builder.Cond = builder.Eq {
230+ "repo_id" : opts .RepoID ,
231+ "sha" : opts .SHA ,
242232 }
243233
244- statuses := make ([]* CommitStatus , 0 , opts .PageSize )
245- findSession := listCommitStatusesStatement (ctx , repo , sha , opts )
246- findSession = db .SetSessionPagination (findSession , opts )
247- sortCommitStatusesSession (findSession , opts .SortType )
248- return statuses , maxResults , findSession .Find (& statuses )
249- }
250-
251- func listCommitStatusesStatement (ctx context.Context , repo * repo_model.Repository , sha string , opts * CommitStatusOptions ) * xorm.Session {
252- sess := db .GetEngine (ctx ).Where ("repo_id = ?" , repo .ID ).And ("sha = ?" , sha )
253234 switch opts .State {
254235 case "pending" , "success" , "error" , "failure" , "warning" :
255- sess .And ("state = ?" , opts .State )
236+ cond = cond .And (builder.Eq {
237+ "state" : opts .State ,
238+ })
256239 }
257- return sess
240+
241+ return cond
258242}
259243
260- func sortCommitStatusesSession ( sess * xorm. Session , sortType string ) {
261- switch sortType {
244+ func ( opts * CommitStatusOptions ) ToOrders () string {
245+ switch opts . SortType {
262246 case "oldest" :
263- sess . Asc ( "created_unix" )
247+ return "created_unix ASC"
264248 case "recentupdate" :
265- sess . Desc ( "updated_unix" )
249+ return "updated_unix DESC"
266250 case "leastupdate" :
267- sess . Asc ( "updated_unix" )
251+ return "updated_unix ASC"
268252 case "leastindex" :
269- sess . Desc ( " index" )
253+ return "` index` DESC"
270254 case "highestindex" :
271- sess . Asc ( " index" )
255+ return "` index` ASC"
272256 default :
273- sess . Desc ( "created_unix" )
257+ return "created_unix DESC"
274258 }
275259}
276260
0 commit comments