@@ -25,7 +25,6 @@ import (
25
25
"code.gitea.io/gitea/modules/translation"
26
26
27
27
"xorm.io/builder"
28
- "xorm.io/xorm"
29
28
)
30
29
31
30
// CommitStatus holds a single Status of a single Commit
@@ -221,57 +220,42 @@ func CalcCommitStatus(statuses []*CommitStatus) *CommitStatus {
221
220
// CommitStatusOptions holds the options for query commit statuses
222
221
type CommitStatusOptions struct {
223
222
db.ListOptions
223
+ RepoID int64
224
+ SHA string
224
225
State string
225
226
SortType string
226
227
}
227
228
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 ,
243
233
}
244
234
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 )
254
235
switch opts .State {
255
236
case "pending" , "success" , "error" , "failure" , "warning" :
256
- sess .And ("state = ?" , opts .State )
237
+ cond = cond .And (builder.Eq {
238
+ "state" : opts .State ,
239
+ })
257
240
}
258
- return sess
241
+
242
+ return cond
259
243
}
260
244
261
- func sortCommitStatusesSession ( sess * xorm. Session , sortType string ) {
262
- switch sortType {
245
+ func ( opts * CommitStatusOptions ) ToOrders () string {
246
+ switch opts . SortType {
263
247
case "oldest" :
264
- sess . Asc ( "created_unix" )
248
+ return "created_unix ASC"
265
249
case "recentupdate" :
266
- sess . Desc ( "updated_unix" )
250
+ return "updated_unix DESC"
267
251
case "leastupdate" :
268
- sess . Asc ( "updated_unix" )
252
+ return "updated_unix ASC"
269
253
case "leastindex" :
270
- sess . Desc ( " index" )
254
+ return "` index` DESC"
271
255
case "highestindex" :
272
- sess . Asc ( " index" )
256
+ return "` index` ASC"
273
257
default :
274
- sess . Desc ( "created_unix" )
258
+ return "created_unix DESC"
275
259
}
276
260
}
277
261
0 commit comments