mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	API add/generalize pagination (#9452)
* paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
		
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							333401e0fd
						
					
				
				
					commit
					1f01f53c53
				
			@@ -10,7 +10,6 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
 | 
			
		||||
	"xorm.io/builder"
 | 
			
		||||
	"xorm.io/xorm"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// TrackedTime represents a time that was spent for a specific issue.
 | 
			
		||||
@@ -71,6 +70,7 @@ func (tl TrackedTimeList) LoadAttributes() (err error) {
 | 
			
		||||
 | 
			
		||||
// FindTrackedTimesOptions represent the filters for tracked times. If an ID is 0 it will be ignored.
 | 
			
		||||
type FindTrackedTimesOptions struct {
 | 
			
		||||
	ListOptions
 | 
			
		||||
	IssueID           int64
 | 
			
		||||
	UserID            int64
 | 
			
		||||
	RepositoryID      int64
 | 
			
		||||
@@ -104,11 +104,19 @@ func (opts *FindTrackedTimesOptions) ToCond() builder.Cond {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ToSession will convert the given options to a xorm Session by using the conditions from ToCond and joining with issue table if required
 | 
			
		||||
func (opts *FindTrackedTimesOptions) ToSession(e Engine) *xorm.Session {
 | 
			
		||||
func (opts *FindTrackedTimesOptions) ToSession(e Engine) Engine {
 | 
			
		||||
	sess := e
 | 
			
		||||
	if opts.RepositoryID > 0 || opts.MilestoneID > 0 {
 | 
			
		||||
		return e.Join("INNER", "issue", "issue.id = tracked_time.issue_id").Where(opts.ToCond())
 | 
			
		||||
		sess = e.Join("INNER", "issue", "issue.id = tracked_time.issue_id")
 | 
			
		||||
	}
 | 
			
		||||
	return e.Where(opts.ToCond())
 | 
			
		||||
 | 
			
		||||
	sess = sess.Where(opts.ToCond())
 | 
			
		||||
 | 
			
		||||
	if opts.Page != 0 {
 | 
			
		||||
		sess = opts.setEnginePagination(sess)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return sess
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getTrackedTimes(e Engine, options FindTrackedTimesOptions) (trackedTimes TrackedTimeList, err error) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user