Common: Delete IJSONSerializable.py

This interface is no longer used (replaced by pydantic objects)
This commit is contained in:
vakaris_zilius 2022-09-07 09:25:50 +00:00
parent b7e6435ced
commit 895de8c720
5 changed files with 1 additions and 45 deletions

View File

@ -1,15 +0,0 @@
from __future__ import annotations
from abc import ABC, abstractmethod
class IJSONSerializable(ABC):
@classmethod
@abstractmethod
def from_json(cls, json_string: str) -> IJSONSerializable:
pass
@classmethod
@abstractmethod
def to_json(cls, class_object: IJSONSerializable) -> str:
pass

View File

@ -1,2 +1 @@
from .timer import Timer from .timer import Timer
from .IJSONSerializable import IJSONSerializable

View File

@ -1,14 +1,12 @@
from datetime import datetime from datetime import datetime
from enum import Enum from enum import Enum
from json import JSONEncoder, dumps, loads from json import JSONEncoder, dumps
from typing import Any from typing import Any
import bson import bson
from flask import make_response from flask import make_response
from pydantic import BaseModel from pydantic import BaseModel
from common.utils import IJSONSerializable
class APIEncoder(JSONEncoder): class APIEncoder(JSONEncoder):
def default(self, value: Any) -> Any: def default(self, value: Any) -> Any:
@ -20,8 +18,6 @@ class APIEncoder(JSONEncoder):
return str(value) return str(value)
if issubclass(type(value), Enum): if issubclass(type(value), Enum):
return value.name return value.name
if issubclass(type(value), IJSONSerializable):
return loads(value.__class__.to_json(value))
if issubclass(type(value), set): if issubclass(type(value), set):
return list(value) return list(value)
if issubclass(type(value), BaseModel): if issubclass(type(value), BaseModel):

View File

@ -5,7 +5,6 @@ from enum import Enum
import bson import bson
from common.utils import IJSONSerializable
from monkey_island.cc.services.representations import APIEncoder from monkey_island.cc.services.representations import APIEncoder
@ -73,22 +72,3 @@ def test_api_encoder_tuple():
bogus_tuple = [{"my_tuple": (bogus_object1, bogus_object2, "string")}] bogus_tuple = [{"my_tuple": (bogus_object1, bogus_object2, "string")}]
expected_tuple = [{"my_tuple": ({"a": 1}, {"a": 2}, "string")}] expected_tuple = [{"my_tuple": ({"a": 1}, {"a": 2}, "string")}]
assert json.dumps(expected_tuple) == json.dumps(bogus_tuple, cls=APIEncoder) assert json.dumps(expected_tuple) == json.dumps(bogus_tuple, cls=APIEncoder)
class BogusSerializableClass(IJSONSerializable):
def __init__(self, a):
self.a = a
@classmethod
def to_json(cls, class_object: IJSONSerializable) -> str:
return json.dumps({"wacky": class_object.a})
@classmethod
def from_json(cls, json_string: str) -> IJSONSerializable:
pass
def test_api_encoder_json_serializable():
bogus_data = {"target": [BogusSerializableClass("macky")]}
expected_result = {"target": [{"wacky": "macky"}]}
assert json.dumps(expected_result) == json.dumps(bogus_data, cls=APIEncoder)

View File

@ -316,10 +316,6 @@ EXPLOITED
CC CC
CC_TUNNEL CC_TUNNEL
# TODO Remove with #2217
IJSONSerializable
from_json
IslandEventTopic.AGENT_CONNECTED IslandEventTopic.AGENT_CONNECTED
IslandEventTopic.CLEAR_SIMULATION_DATA IslandEventTopic.CLEAR_SIMULATION_DATA
IslandEventTopic.RESET_AGENT_CONFIGURATION IslandEventTopic.RESET_AGENT_CONFIGURATION