__init__.py 956 B

1234567891011121314151617181920212223242526272829303132
  1. from collections.abc import Mapping
  2. from typing import Any
  3. from core.plugin.entities.request import RequestInvokeEncrypt
  4. from core.tools.utils.configuration import ProviderConfigEncrypter
  5. from models.account import Tenant
  6. class PluginEncrypter:
  7. @classmethod
  8. def invoke_encrypt(cls, tenant: Tenant, payload: RequestInvokeEncrypt) -> Mapping[str, Any]:
  9. encrypter = ProviderConfigEncrypter(
  10. tenant_id=tenant.id,
  11. config=payload.data,
  12. provider_type=payload.namespace,
  13. provider_identity=payload.identity,
  14. )
  15. try:
  16. if payload.opt == "encrypt":
  17. return {
  18. "data": encrypter.encrypt(payload.data),
  19. }
  20. else:
  21. return {
  22. "data": encrypter.decrypt(payload.data),
  23. }
  24. except Exception as e:
  25. return {
  26. "error": str(e),
  27. }