drone/app/api/request/execution.go
Karan Saraswat 0cd3e0693f feat: [PIPE-22871]: API for listing executions for a project/space (#2941)
* fixed go lint
* added header
* Apply suggestions from code review
* feat: [PIPE-22871]: added filters for list space executions API
* feat: [PIPE-22871]: count of pipelines db query will be run if there is more than 1 page
* removed pipelineId ans repoId from executionPipelineRepoJoin
* fixed go lint
* addressed review comments
* Apply suggestions from code review
* Apply suggestions from code review
* fixed lint
* feat: [PIPE-22871]: API for listing executions for a project/space
2024-11-08 11:55:40 +00:00

43 lines
1.4 KiB
Go

// Copyright 2023 Harness, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package request
import (
"net/http"
"github.com/harness/gitness/types"
"github.com/harness/gitness/types/enum"
)
const QueryParamPipelineIdentifier = "pipeline_identifier"
// ParseSortExecution extracts the execution sort parameter from the url.
func ParseSortExecution(r *http.Request) enum.ExecutionSort {
result, _ := enum.ExecutionSort(r.URL.Query().Get(QueryParamSort)).Sanitize()
return result
}
func ParseListExecutionsFilterFromRequest(r *http.Request) (types.ListExecutionsFilter, error) {
return types.ListExecutionsFilter{
ListQueryFilter: types.ListQueryFilter{
Query: ParseQuery(r),
Pagination: ParsePaginationFromRequest(r),
},
PipelineIdentifier: QueryParamOrDefault(r, QueryParamPipelineIdentifier, ""),
Sort: ParseSortExecution(r),
Order: ParseOrder(r),
}, nil
}