payload.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package cert
  2. import (
  3. "github.com/0xJacky/Nginx-UI/internal/helper"
  4. "github.com/0xJacky/Nginx-UI/internal/logger"
  5. "github.com/0xJacky/Nginx-UI/model"
  6. "github.com/0xJacky/Nginx-UI/query"
  7. "github.com/go-acme/lego/v4/certcrypto"
  8. "time"
  9. )
  10. type ConfigPayload struct {
  11. ServerName []string `json:"server_name"`
  12. ChallengeMethod string `json:"challenge_method"`
  13. DNSCredentialID int `json:"dns_credential_id"`
  14. ACMEUserID int `json:"acme_user_id"`
  15. KeyType certcrypto.KeyType `json:"key_type"`
  16. Resource *model.CertificateResource `json:"resource,omitempty"`
  17. NotBefore time.Time
  18. }
  19. func (c *ConfigPayload) GetACMEUser() (user *model.AcmeUser, err error) {
  20. u := query.AcmeUser
  21. // if acme_user_id == 0, use default user
  22. if c.ACMEUserID == 0 {
  23. return GetDefaultACMEUser()
  24. }
  25. // use the acme_user_id to get the acme user
  26. user, err = u.Where(u.ID.Eq(c.ACMEUserID)).First()
  27. // if acme_user not exist, use default user
  28. if err != nil {
  29. logger.Error(err)
  30. return GetDefaultACMEUser()
  31. }
  32. return
  33. }
  34. func (c *ConfigPayload) GetKeyType() certcrypto.KeyType {
  35. return helper.GetKeyType(c.KeyType)
  36. }