payload.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. )
  9. type ConfigPayload struct {
  10. ServerName []string `json:"server_name"`
  11. ChallengeMethod string `json:"challenge_method"`
  12. DNSCredentialID int `json:"dns_credential_id"`
  13. ACMEUserID int `json:"acme_user_id"`
  14. KeyType certcrypto.KeyType `json:"key_type"`
  15. }
  16. func (c *ConfigPayload) GetACMEUser() (user *model.AcmeUser, err error) {
  17. u := query.AcmeUser
  18. // if acme_user_id == 0, use default user
  19. if c.ACMEUserID == 0 {
  20. return GetDefaultACMEUser()
  21. }
  22. // use the acme_user_id to get the acme user
  23. user, err = u.Where(u.ID.Eq(c.ACMEUserID)).First()
  24. // if acme_user not exist, use default user
  25. if err != nil {
  26. logger.Error(err)
  27. return GetDefaultACMEUser()
  28. }
  29. return
  30. }
  31. func (c *ConfigPayload) GetKeyType() certcrypto.KeyType {
  32. return helper.GetKeyType(c.KeyType)
  33. }