drone/internal/api/request/pipeline.go
2023-09-07 11:07:49 +01:00

65 lines
1.6 KiB
Go

// Copyright 2022 Harness Inc. All rights reserved.
// Use of this source code is governed by the Polyform Free Trial License
// that can be found in the LICENSE.md file for this repository.
package request
import (
"net/http"
"net/url"
)
const (
PathParamPipelineRef = "pipeline_uid"
PathParamExecutionNumber = "execution_number"
PathParamStageNumber = "stage_number"
PathParamStepNumber = "step_number"
PathParamTriggerUID = "trigger_uid"
QueryParamLatest = "latest"
QueryParamBranch = "branch"
)
func GetPipelineUIDFromPath(r *http.Request) (string, error) {
rawRef, err := PathParamOrError(r, PathParamPipelineRef)
if err != nil {
return "", err
}
// paths are unescaped
return url.PathUnescape(rawRef)
}
func GetBranchFromQuery(r *http.Request) string {
return r.URL.Query().Get(QueryParamBranch)
}
func GetExecutionNumberFromPath(r *http.Request) (int64, error) {
return PathParamAsPositiveInt64(r, PathParamExecutionNumber)
}
func GetStageNumberFromPath(r *http.Request) (int64, error) {
return PathParamAsPositiveInt64(r, PathParamStageNumber)
}
func GetStepNumberFromPath(r *http.Request) (int64, error) {
return PathParamAsPositiveInt64(r, PathParamStepNumber)
}
func GetLatestFromPath(r *http.Request) bool {
v, _ := QueryParam(r, QueryParamLatest)
if v == "true" {
return true
}
return false
}
func GetTriggerUIDFromPath(r *http.Request) (string, error) {
rawRef, err := PathParamOrError(r, PathParamTriggerUID)
if err != nil {
return "", err
}
// paths are unescaped
return url.PathUnescape(rawRef)
}