@@ -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
@@ -221,57 +220,42 @@ func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus {
221220// CommitStatusOptions holds the options for query commit statuses
222221type CommitStatusOptions struct {
223222 db.ListOptions
223+ RepoID int64
224+ SHA string
224225 State string
225226 SortType string
226227}
227228
228- // GetCommitStatuses returns all statuses for a given commit.
229- func GetCommitStatuses (ctx context.Context , repo * repo_model.Repository , sha string , opts * CommitStatusOptions ) ([]* CommitStatus , int64 , error ) {
230- if opts .Page <= 0 {
231- opts .Page = 1
232- }
233- if opts .PageSize <= 0 {
234- opts .Page = setting .ItemsPerPage
235- }
236-
237- countSession := listCommitStatusesStatement (ctx , repo , sha , opts )
238- countSession = db .SetSessionPagination (countSession , opts )
239- maxResults , err := countSession .Count (new (CommitStatus ))
240- if err != nil {
241- log .Error ("Count PRs: %v" , err )
242- return nil , maxResults , err
229+ func (opts * CommitStatusOptions ) ToConds () builder.Cond {
230+ var cond builder.Cond = builder.Eq {
231+ "repo_id" : opts .RepoID ,
232+ "sha" : opts .SHA ,
243233 }
244234
245- statuses := make ([]* CommitStatus , 0 , opts .PageSize )
246- findSession := listCommitStatusesStatement (ctx , repo , sha , opts )
247- findSession = db .SetSessionPagination (findSession , opts )
248- sortCommitStatusesSession (findSession , opts .SortType )
249- return statuses , maxResults , findSession .Find (& statuses )
250- }
251-
252- func listCommitStatusesStatement (ctx context.Context , repo * repo_model.Repository , sha string , opts * CommitStatusOptions ) * xorm.Session {
253- sess := db .GetEngine (ctx ).Where ("repo_id = ?" , repo .ID ).And ("sha = ?" , sha )
254235 switch opts .State {
255236 case "pending" , "success" , "error" , "failure" , "warning" :
256- sess .And ("state = ?" , opts .State )
237+ cond = cond .And (builder.Eq {
238+ "state" : opts .State ,
239+ })
257240 }
258- return sess
241+
242+ return cond
259243}
260244
261- func sortCommitStatusesSession ( sess * xorm. Session , sortType string ) {
262- switch sortType {
245+ func ( opts * CommitStatusOptions ) ToOrders () string {
246+ switch opts . SortType {
263247 case "oldest" :
264- sess . Asc ( "created_unix" )
248+ return "created_unix ASC"
265249 case "recentupdate" :
266- sess . Desc ( "updated_unix" )
250+ return "updated_unix DESC"
267251 case "leastupdate" :
268- sess . Asc ( "updated_unix" )
252+ return "updated_unix ASC"
269253 case "leastindex" :
270- sess . Desc ( " index" )
254+ return "` index` DESC"
271255 case "highestindex" :
272- sess . Asc ( " index" )
256+ return "` index` ASC"
273257 default :
274- sess . Desc ( "created_unix" )
258+ return "created_unix DESC"
275259 }
276260}
277261
0 commit comments