From 675f613c04ae2dc218831b9d31db0e05bc89ab39 Mon Sep 17 00:00:00 2001 From: corpulent Date: Thu, 28 Jul 2022 18:52:21 +0300 Subject: [PATCH] fix: send string to generate code --- services/backend/src/api/views/generate.py | 3 ++- services/backend/src/api/views/utils.py | 1 + services/frontend/src/components/Project/index.tsx | 2 +- services/frontend/src/services/generate.ts | 3 +-- services/frontend/src/utils/generators.ts | 10 +++++----- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/services/backend/src/api/views/generate.py b/services/backend/src/api/views/generate.py index 9b7907a..9ffeae3 100644 --- a/services/backend/src/api/views/generate.py +++ b/services/backend/src/api/views/generate.py @@ -1,3 +1,4 @@ +import json from rest_framework import generics, status from rest_framework.response import Response @@ -11,7 +12,7 @@ class GenerateGenericAPIView(generics.GenericAPIView): return Response({}, status=status.HTTP_404_NOT_FOUND) def post(self, request, format=None): - request_data = request.data + request_data = json.loads(request.data) version = request_data['data'].get('version', '3') services = request_data['data'].get('services', None) volumes = request_data['data'].get('volumes', None) diff --git a/services/backend/src/api/views/utils.py b/services/backend/src/api/views/utils.py index 8f2322e..ae10d43 100644 --- a/services/backend/src/api/views/utils.py +++ b/services/backend/src/api/views/utils.py @@ -71,6 +71,7 @@ def generate(services, volumes, networks, version="3", return_format='yaml'): s = io.StringIO() ret_yaml = YAML() ret_yaml.indent(mapping=2, sequence=4, offset=2) + ret_yaml.preserve_quotes = True ret_yaml.explicit_start = True specified_version = get_version(version) base_version = int(specified_version) diff --git a/services/frontend/src/components/Project/index.tsx b/services/frontend/src/components/Project/index.tsx index f29ea34..43b9e34 100644 --- a/services/frontend/src/components/Project/index.tsx +++ b/services/frontend/src/components/Project/index.tsx @@ -182,7 +182,7 @@ export default function Project() { debounce((graphData) => { graphData.networks = stateNetworksRef.current; const flatData = generatePayload(graphData); - generateHttp(flatData) + generateHttp(JSON.stringify(flatData)) .then(checkHttpStatus) .then((data) => { if (data["code"].length) { diff --git a/services/frontend/src/services/generate.ts b/services/frontend/src/services/generate.ts index 12af877..c6d3901 100644 --- a/services/frontend/src/services/generate.ts +++ b/services/frontend/src/services/generate.ts @@ -1,7 +1,6 @@ -import { IGeneratePayload } from "../types"; import { API_SERVER_URL } from "../constants"; -export const generateHttp = (data: IGeneratePayload) => { +export const generateHttp = (data: string) => { return fetch(`${API_SERVER_URL}/generate/`, { method: "POST", headers: { diff --git a/services/frontend/src/utils/generators.ts b/services/frontend/src/utils/generators.ts index 9816850..a32a7eb 100644 --- a/services/frontend/src/utils/generators.ts +++ b/services/frontend/src/utils/generators.ts @@ -12,6 +12,11 @@ export const generatePayload = (data: any): IGeneratePayload => { } }; + Object.keys(networks).forEach((key) => { + base.data.networks[networks[key].canvasConfig.node_name] = + networks[key].networkConfig; + }); + Object.keys(nodes).forEach((key) => { if (nodes[key].type === "SERVICE") { base.data.services[nodes[key].canvasConfig.node_name] = @@ -24,10 +29,5 @@ export const generatePayload = (data: any): IGeneratePayload => { } }); - Object.keys(networks).forEach((key) => { - base.data.networks[networks[key].canvasConfig.node_name] = - networks[key].networkConfig; - }); - return base; };