Files
libredesk/internal/webhook/encryption.go
T
Abhinav Raut b7103b24ef show oauth callback error / success messages as toast.
Add logs for errors and minor refactor
2025-12-24 16:08:25 +05:30

39 lines
1.1 KiB
Go

package webhook
import (
"github.com/abhinavxd/libredesk/internal/crypto"
"github.com/abhinavxd/libredesk/internal/webhook/models"
)
// encryptSecret encrypts webhook secret if present.
func (m *Manager) encryptSecret(secret string) (string, error) {
encrypted, err := crypto.Encrypt(secret, m.encryptionKey)
if err != nil {
m.lo.Error("error encrypting webhook secret", "error", err)
return "", err
}
return encrypted, nil
}
// decryptWebhook decrypts webhook secret in-place.
func (m *Manager) decryptWebhook(webhook *models.Webhook) error {
decrypted, err := crypto.Decrypt(webhook.Secret, m.encryptionKey)
if err != nil {
m.lo.Error("error decrypting webhook secret", "webhook_id", webhook.ID, "error", err)
return err
}
webhook.Secret = decrypted
return nil
}
// decryptWebhooks decrypts secrets for a slice of webhooks.
func (m *Manager) decryptWebhooks(webhooks []models.Webhook) {
for i := range webhooks {
if err := m.decryptWebhook(&webhooks[i]); err != nil {
m.lo.Error("error decrypting webhook secret", "webhook_id", webhooks[i].ID, "error", err)
continue
}
}
}