helper.go 651 B

123456789101112131415161718192021222324252627282930313233
  1. package api
  2. import (
  3. "bytes"
  4. "fmt"
  5. "net/http"
  6. "net/url"
  7. "strings"
  8. "time"
  9. "github.com/ncarlier/webhookd/pkg/helper"
  10. )
  11. // HTTPParamsToShellVars convert URL values to shell vars.
  12. func HTTPParamsToShellVars[T url.Values | http.Header](params T) []string {
  13. var result []string
  14. for k, v := range params {
  15. var buf bytes.Buffer
  16. value, err := url.QueryUnescape(strings.Join(v, ","))
  17. if err != nil {
  18. continue
  19. }
  20. buf.WriteString(helper.ToSnake(k))
  21. buf.WriteString("=")
  22. buf.WriteString(value)
  23. result = append(result, buf.String())
  24. }
  25. return result
  26. }
  27. func nextRequestID() string {
  28. return fmt.Sprintf("%d", time.Now().UnixNano())
  29. }