Bläddra i källkod

refactor: encryption

Yeuoly 8 månader sedan
förälder
incheckning
4c28034224
2 ändrade filer med 30 tillägg och 4 borttagningar
  1. 13 4
      api/core/plugin/encrypt/__init__.py
  2. 17 0
      api/core/plugin/entities/endpoint.py

+ 13 - 4
api/core/plugin/encrypt/__init__.py

@@ -16,7 +16,16 @@ class PluginEncrypter:
             provider_identity=payload.identity,
         )
 
-        if payload.opt == "encrypt":
-            return encrypter.encrypt(payload.data)
-        else:
-            return encrypter.decrypt(payload.data)
+        try:
+            if payload.opt == "encrypt":
+                return {
+                    "data": encrypter.encrypt(payload.data),
+                }
+            else:
+                return {
+                    "data": encrypter.decrypt(payload.data),
+                }
+        except Exception as e:
+            return {
+                "error": str(e),
+            }

+ 17 - 0
api/core/plugin/entities/endpoint.py

@@ -1,11 +1,28 @@
+from collections.abc import Mapping
 from datetime import datetime
 
+from pydantic import BaseModel, Field
+
+from core.entities.provider_entities import ProviderConfig
 from core.plugin.entities.base import BasePluginEntity
 
 
+class EndpointDeclaration(BaseModel):
+    """
+    declaration of an endpoint
+    """
+
+    settings: Mapping[str, ProviderConfig] = Field(default_factory=Mapping)
+
+
 class EndpointEntity(BasePluginEntity):
+    """
+    entity of an endpoint
+    """
+
     settings: dict
     hook_id: str
     tenant_id: str
     plugin_id: str
     expired_at: datetime
+    declaration: EndpointDeclaration = Field(default_factory=EndpointDeclaration)