From 6321c1bf34c91f263fef922605abe13d3307440f Mon Sep 17 00:00:00 2001 From: sm4640 Date: Thu, 5 Jun 2025 18:33:01 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Feat:=20[#64]=20=EB=AA=A8=EB=8D=B8?= =?UTF-8?q?=20=EA=B0=9D=EC=B2=B4,=20=EC=8B=9C=EB=A6=AC=EC=96=BC=EB=9D=BC?= =?UTF-8?q?=EC=9D=B4=EC=A0=80=20=EB=A7=A4=ED=95=91=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nocodetools/services.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 nocodetools/services.py diff --git a/nocodetools/services.py b/nocodetools/services.py new file mode 100644 index 0000000..b19203b --- /dev/null +++ b/nocodetools/services.py @@ -0,0 +1,29 @@ +from .models import * +from .serializers import * + +from projects.models import Project +from portfolios.models import Portfolio + +from projects.serializers import ProjectNocodetoolSerializer +from portfolios.serializers import PortfolioNocodetoolSerializer + +NOCODETOOL_MODEL_MAP = { + 'project': Project, + 'portfolio': Portfolio, + } + +NOCODETOOL_SERIALIZER_MAP = { + 'project': ProjectNocodetoolSerializer, + 'portfolio': PortfolioNocodetoolSerializer, + } + +class NocodetoolObjectMapService: + @staticmethod + def mapping_model_instance(related_type: str, related_id: str): + object_model = NOCODETOOL_MODEL_MAP.get(related_type) + if not object_model: + return None + return object_model.objects.filter(id=related_id).first() + + def mapping_model_serializer(related_type: str): + return NOCODETOOL_SERIALIZER_MAP.get(related_type, None)