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