diff --git a/api/source-score.yaml b/api/source-score.yaml index 23e8068..da2133c 100644 --- a/api/source-score.yaml +++ b/api/source-score.yaml @@ -53,6 +53,21 @@ paths: operationId: getSources parameters: - $ref: '#/components/parameters/ClientIDHeader' + - name: page + in: query + required: false + schema: + type: integer + minimum: 1 + default: 1 + - name: size + in: query + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 20 responses: 200: description: List of sources retrieved successfully @@ -61,7 +76,7 @@ paths: schema: type: array items: - $ref: '#/components/schemas/Source' + $ref: '#/components/schemas/SourcesPage' /api/v1/sources/scores: post: @@ -670,6 +685,23 @@ components: binding: required gorm: "type:text" + SourcesPage: + type: object + required: [data, total, page, size, has_next] + properties: + data: + type: array + items: + $ref: "#/components/schemas/Source" + total: + type: integer + page: + type: integer + size: + type: integer + has_next: + type: boolean + CreateSourceResponse: type: object description: Response after successfully creating a source diff --git a/pkg/api/server.gen.go b/pkg/api/server.gen.go index 7477098..8566799 100644 --- a/pkg/api/server.gen.go +++ b/pkg/api/server.gen.go @@ -177,6 +177,15 @@ type SourcePatchInput struct { Tags *string `json:"tags" validate:"omitnil,nospace,nonempty"` } +// SourcesPage defines model for SourcesPage. +type SourcesPage struct { + Data []Source `json:"data"` + HasNext bool `json:"has_next"` + Page int `json:"page"` + Size int `json:"size"` + Total int `json:"total"` +} + // ClientIDHeader defines model for ClientIDHeader. type ClientIDHeader = string @@ -292,6 +301,9 @@ type GetClaimsBySourceDigestParams struct { // GetSourcesParams defines parameters for GetSources. type GetSourcesParams struct { + Page *int `form:"page,omitempty" json:"page,omitempty"` + Size *int `form:"size,omitempty" json:"size,omitempty"` + // ClientID Client identifier for authentication ClientID ClientIDHeader `json:"Client-ID"` } @@ -1323,6 +1335,22 @@ func (siw *ServerInterfaceWrapper) GetSources(c *gin.Context) { // Parameter object where we will unmarshal all parameters from the context var params GetSourcesParams + // ------------- Optional query parameter "page" ------------- + + err = runtime.BindQueryParameter("form", true, false, "page", c.Request.URL.Query(), ¶ms.Page) + if err != nil { + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter page: %w", err), http.StatusBadRequest) + return + } + + // ------------- Optional query parameter "size" ------------- + + err = runtime.BindQueryParameter("form", true, false, "size", c.Request.URL.Query(), ¶ms.Size) + if err != nil { + siw.ErrorHandler(c, fmt.Errorf("Invalid format for parameter size: %w", err), http.StatusBadRequest) + return + } + headers := c.Request.Header // ------------- Required header parameter "Client-ID" -------------