diff --git a/changes.proto b/changes.proto index 8f633cc..8fc3609 100644 --- a/changes.proto +++ b/changes.proto @@ -8,6 +8,7 @@ import "bookmarks.proto"; import "items.proto"; import "snapshots.proto"; import "config.proto"; +import "util.proto"; // ______ // ,'" "-._ @@ -261,9 +262,13 @@ message GetAppSummariesResponse { repeated changes.AppSummary apps = 1; } -message ListHomeChangesRequest {} +message ListHomeChangesRequest { + PaginationRequest pagination = 1; +} + message ListHomeChangesResponse { repeated ChangeSummary changes = 1; + PaginationResponse pagination = 2; } message ListHomeAppsRequest {} diff --git a/util.proto b/util.proto new file mode 100644 index 0000000..1b774ac --- /dev/null +++ b/util.proto @@ -0,0 +1,37 @@ +syntax = "proto3"; + +// _____/\\\\\\\\\\\____/\\\\\\\\\\\\_____/\\\\\\\\\\\\\___ +// ___/\\\/////////\\\_\/\\\////////\\\__\/\\\/////////\\\_ +// __\//\\\______\///__\/\\\______\//\\\_\/\\\_______\/\\\_ +// ___\////\\\_________\/\\\_______\/\\\_\/\\\\\\\\\\\\\/__ +// ______\////\\\______\/\\\_______\/\\\_\/\\\/////////____ +// _________\////\\\___\/\\\_______\/\\\_\/\\\_____________ +// __/\\\______\//\\\__\/\\\_______/\\\__\/\\\_____________ +// _\///\\\\\\\\\\\/___\/\\\\\\\\\\\\/___\/\\\_____________ +// ___\///////////_____\////////////_____\///______________ +option go_package = "github.com/overmindtech/sdp-go;sdp"; + +message PaginationRequest { + // The number of items to return in a single page. The minimum is 10 and the maximum is 100. + int32 pageSize = 1; + + // The page number to return. the first page is 0. + // if the page number is larger than the total number of pages, the last page is returned. + // if the page number is negative, the first page 0 is returned. + int32 page = 2; +} + +message PaginationResponse { + // The number of items in the current page + int32 pageSize = 1; + + // The total number of items available. Expensive to calculate https://www.cybertec-postgresql.com/en/pagination-problem-total-result-count/ + // this is done as a separate query + int32 totalItems = 2; + + // The current page number + int32 page = 3; + + // The total number of pages available. based on the totalItems and pageSize. + int32 totalPages = 4; +} \ No newline at end of file