drone/types/enum/pullreq.go
Johannes Batzill 1337f729e7 [Webhook] Add Swagger (#145)
This change adds webhook APIs to swagger and regenerates the web service clients based on the latest swagger.
2022-12-28 14:42:13 -08:00

131 lines
3.5 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 enum
import (
"sort"
"strings"
)
// PullReqState defines pull request state.
type PullReqState string
// PullReqState enumeration.
const (
PullReqStateOpen PullReqState = "open"
PullReqStateMerged PullReqState = "merged"
PullReqStateClosed PullReqState = "closed"
PullReqStateRejected PullReqState = "rejected"
)
// PullReqSort defines pull request attribute that can be used for sorting.
type PullReqSort int
// PullReqAttr enumeration.
const (
PullReqSortNone PullReqSort = iota
PullReqSortNumber
PullReqSortCreated
PullReqSortUpdated
)
// ParsePullReqSort parses the pull request attribute string
// and returns the equivalent enumeration.
func ParsePullReqSort(s string) PullReqSort {
switch strings.ToLower(s) {
case number:
return PullReqSortNumber
case created, createdAt:
return PullReqSortCreated
case updated, updatedAt:
return PullReqSortUpdated
default:
return PullReqSortNone
}
}
// String returns the string representation of the attribute.
func (a PullReqSort) String() string {
switch a {
case PullReqSortNumber:
return number
case PullReqSortCreated:
return created
case PullReqSortUpdated:
return updated
case PullReqSortNone:
return ""
default:
return undefined
}
}
// PullReqActivityType defines pull request activity message type.
// Essentially, the Type determines the structure of the pull request activity's Payload structure.
type PullReqActivityType string
// PullReqActivityType enumeration.
const (
PullReqActivityTypeComment PullReqActivityType = "comment"
PullReqActivityTypeCodeComment PullReqActivityType = "code-comment"
PullReqActivityTypeTitleChange PullReqActivityType = "title-change"
)
func GetAllPullReqActivityTypes() []PullReqActivityType {
return []PullReqActivityType{
PullReqActivityTypeComment,
PullReqActivityTypeCodeComment,
PullReqActivityTypeTitleChange,
}
}
var rawPullReqActivityTypes = enumToStringSlice(GetAllPullReqActivityTypes())
func init() {
sort.Strings(rawPullReqActivityTypes)
}
// ParsePullReqActivityType parses the pull request activity type.
func ParsePullReqActivityType(s string) (PullReqActivityType, bool) {
if existsInSortedSlice(rawPullReqActivityTypes, s) {
return PullReqActivityType(s), true
}
return "", false
}
// PullReqActivityKind defines kind of pull request activity system message.
// Kind defines the source of the pull request activity entry:
// Whether it's generated by the system, it's a user comment or a part of code review.
type PullReqActivityKind string
// PullReqActivityKind enumeration.
const (
PullReqActivityKindSystem PullReqActivityKind = "system"
PullReqActivityKindComment PullReqActivityKind = "comment"
PullReqActivityKindCodeComment PullReqActivityKind = "code"
)
func GetAllPullReqActivityKinds() []PullReqActivityKind {
return []PullReqActivityKind{
PullReqActivityKindSystem,
PullReqActivityKindComment,
PullReqActivityKindCodeComment,
}
}
var rawPullReqActivityKinds = enumToStringSlice(GetAllPullReqActivityKinds())
func init() {
sort.Strings(rawPullReqActivityKinds)
}
// ParsePullReqActivityKind parses the pull request activity type.
func ParsePullReqActivityKind(s string) (PullReqActivityKind, bool) {
if existsInSortedSlice(rawPullReqActivityKinds, s) {
return PullReqActivityKind(s), true
}
return "", false
}