39 lines
862 B
Go

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License-AGPL.txt in the project root for license information.
package apiv1
import (
db "github.com/gitpod-io/gitpod/components/gitpod-db/go"
v1 "github.com/gitpod-io/gitpod/components/public-api/go/experimental/v1"
)
func validatePagination(p *v1.Pagination) *v1.Pagination {
pagination := &v1.Pagination{
PageSize: 25,
Page: 1,
}
if p == nil {
return pagination
}
if p.Page > 0 {
pagination.Page = p.Page
}
if p.PageSize > 0 && p.PageSize <= 100 {
pagination.PageSize = p.PageSize
}
return pagination
}
func paginationToDB(p *v1.Pagination) db.Pagination {
validated := validatePagination(p)
return db.Pagination{
Page: int(validated.GetPage()),
PageSize: int(validated.GetPageSize()),
}
}