This is an automated email from the ASF dual-hosted git repository.

marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git

commit 225f21f0038befa534e5384a752efd8c71073b68
Author: Marat Gubaidullin <ma...@talismancloud.io>
AuthorDate: Tue May 21 18:27:26 2024 -0400

    Fix #1289
---
 karavan-app/pom.xml                                |  6 --
 .../camel/karavan/api/ProjectFileResource.java     | 18 ------
 .../org/apache/camel/karavan/code/CodeService.java | 13 ----
 karavan-app/src/main/webui/src/api/KaravanApi.tsx  | 47 --------------
 .../webui/src/project/files/UploadFileModal.tsx    | 73 +---------------------
 5 files changed, 3 insertions(+), 154 deletions(-)

diff --git a/karavan-app/pom.xml b/karavan-app/pom.xml
index c99407d3..5b79ef18 100644
--- a/karavan-app/pom.xml
+++ b/karavan-app/pom.xml
@@ -145,12 +145,6 @@
             <version>${docker-java.version}</version>
             <optional>false</optional>
         </dependency>
-        <!-- Code generator -->
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-openapi-rest-dsl-generator</artifactId>
-            <version>${camel.version}</version>
-        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-container-image-docker</artifactId>
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectFileResource.java
 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectFileResource.java
index 9de9c10b..7ce9320b 100644
--- 
a/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectFileResource.java
+++ 
b/karavan-app/src/main/java/org/apache/camel/karavan/api/ProjectFileResource.java
@@ -93,22 +93,4 @@ public class ProjectFileResource {
                 URLDecoder.decode(filename, StandardCharsets.UTF_8.toString())
         );
     }
-
-    @POST
-    @Produces(MediaType.APPLICATION_JSON)
-    @Consumes(MediaType.APPLICATION_JSON)
-    @Path("/openapi/{generateRest}/{generateRoutes}/{integrationName}")
-    public ProjectFile saveOpenapi(@HeaderParam("username") String username,
-                                   @PathParam("integrationName") String 
integrationName,
-                                   @PathParam("generateRest") boolean 
generateRest,
-                                   @PathParam("generateRoutes") boolean 
generateRoutes, ProjectFile file) throws Exception {
-        karavanCacheService.saveProjectFile(file);
-        if (generateRest) {
-            String yaml = codeService.generate(file.getName(), file.getCode(), 
generateRoutes);
-            ProjectFile integration = new ProjectFile(integrationName, yaml, 
file.getProjectId(), Instant.now().toEpochMilli());
-            karavanCacheService.saveProjectFile(integration);
-            return file;
-        }
-        return file;
-    }
 }
\ No newline at end of file
diff --git 
a/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java 
b/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
index b4290c01..93ea951a 100644
--- a/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
+++ b/karavan-app/src/main/java/org/apache/camel/karavan/code/CodeService.java
@@ -18,8 +18,6 @@ package org.apache.camel.karavan.code;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
-import io.apicurio.datamodels.Library;
-import io.apicurio.datamodels.models.openapi.OpenApiDocument;
 import io.quarkus.qute.Engine;
 import io.quarkus.qute.Template;
 import io.quarkus.qute.TemplateInstance;
@@ -28,9 +26,6 @@ import io.vertx.core.Vertx;
 import io.vertx.core.buffer.Buffer;
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Inject;
-import org.apache.camel.CamelContext;
-import org.apache.camel.generator.openapi.RestDslGenerator;
-import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.karavan.api.KameletResources;
 import org.apache.camel.karavan.model.DockerComposeService;
 import org.apache.camel.karavan.docker.DockerService;
@@ -244,14 +239,6 @@ public class CodeService {
         return data.map(s -> s.split("=")[1]).orElse(null);
     }
 
-    public String generate(String fileName, String openApi, boolean 
generateRoutes) throws Exception {
-        final ObjectNode node = fileName.endsWith("json") ? 
readNodeFromJson(openApi) : readNodeFromYaml(openApi);
-        OpenApiDocument document = (OpenApiDocument) 
Library.readDocument(node);
-        try (CamelContext context = new DefaultCamelContext()) {
-            return RestDslGenerator.toYaml(document).generate(context, 
generateRoutes);
-        }
-    }
-
     private ObjectNode readNodeFromJson(String openApi) throws Exception {
         final ObjectMapper mapper = new ObjectMapper();
         return (ObjectNode) mapper.readTree(openApi);
diff --git a/karavan-app/src/main/webui/src/api/KaravanApi.tsx 
b/karavan-app/src/main/webui/src/api/KaravanApi.tsx
index 99e1625b..90b2f0ac 100644
--- a/karavan-app/src/main/webui/src/api/KaravanApi.tsx
+++ b/karavan-app/src/main/webui/src/api/KaravanApi.tsx
@@ -695,51 +695,4 @@ export class KaravanApi {
             console.log(err);
         });
     }
-
-    static async getSupportedComponents(after: (json: string) => void) {
-        instance.get('/ui/supported-component')
-            .then(res => {
-                if (res.status === 200) {
-                    after(JSON.stringify(res.data));
-                }
-            }).catch(err => {
-            console.log(err);
-        });
-    }
-
-    static async getOpenApis(after: (openapis: []) => void) {
-        instance.get('/ui/openapi')
-            .then(res => {
-                if (res.status === 200) {
-                    after(res.data);
-                }
-            }).catch(err => {
-            console.log(err);
-        });
-    }
-
-    static async getOpenApi(name: string, after: (res: AxiosResponse<any>) => 
void) {
-        instance.get('/ui/openapi/' + name, {headers: {'Accept': 
'text/plain'}})
-            .then(res => {
-                after(res);
-            }).catch(err => {
-            after(err);
-        });
-    }
-
-    static async postOpenApi(file: ProjectFile, generateRest: boolean, 
generateRoutes: boolean, integrationName: string, after: (result: boolean, 
file: ProjectFile | any) => void) {
-        try {
-            const uri = 
`/ui/file/openapi/${generateRest}/${generateRoutes}/${integrationName}`;
-            instance.post(encodeURI(uri), file)
-                .then(res => {
-                    if (res.status === 200) {
-                        after(true, res.data);
-                    }
-                }).catch(err => {
-                after(false, err);
-            });
-        } catch (error: any) {
-            after(false, error);
-        }
-    }
 }
diff --git a/karavan-app/src/main/webui/src/project/files/UploadFileModal.tsx 
b/karavan-app/src/main/webui/src/project/files/UploadFileModal.tsx
index 4c4f3e15..63cd29c8 100644
--- a/karavan-app/src/main/webui/src/project/files/UploadFileModal.tsx
+++ b/karavan-app/src/main/webui/src/project/files/UploadFileModal.tsx
@@ -20,13 +20,10 @@ import {
     Modal,
     FormGroup,
     ModalVariant,
-    Switch,
     Form,
     FileUpload,
-    Radio,
     FormAlert,
     Alert,
-    TextInputGroupMain, Text, TextVariants, TextInputGroup
 } from '@patternfly/react-core';
 import '../../designer/karavan.css';
 import { ProjectFile} from "../../api/ProjectModels";
@@ -38,19 +35,13 @@ import {ProjectService} from "../../api/ProjectService";
 import {SubmitHandler, useForm} from "react-hook-form";
 import {KaravanApi} from "../../api/KaravanApi";
 import {AxiosResponse} from "axios";
-import {useFormUtil} from "../../util/useFormUtil";
 
 export function UploadFileModal() {
 
-    const integrationExtension = '.camel.yaml'
     const [project] = useProjectStore((s) => [s.project], shallow);
     const [operation, setFile] = useFileStore((s) => [s.operation, s.setFile], 
shallow);
-    const [type, setType] = useState<'integration' | 'openapi' | 
'other'>('integration');
-    const [integrationName, setIntegrationName] = useState('');
     const [isLoading, setIsLoading] = useState(false);
     const [isRejected, setIsRejected] = useState(false);
-    const [generateRest, setGenerateRest] = useState(true);
-    const [generateRoutes, setGenerateRoutes] = useState(true);
     const [isReset, setReset] = React.useState(false);
     const [backendError, setBackendError] = React.useState<string>();
     const formContext = useForm<ProjectFile>({mode: "all"});
@@ -67,7 +58,6 @@ export function UploadFileModal() {
         reset(new ProjectFile('', project.projectId, '', 0));
         setBackendError(undefined);
         setReset(true);
-        setType('integration')
     }, [reset, operation]);
 
     React.useEffect(() => {
@@ -76,11 +66,7 @@ export function UploadFileModal() {
 
     const onSubmit: SubmitHandler<ProjectFile> = (data) => {
         data.projectId = project.projectId;
-        if (type === "openapi") {
-            KaravanApi.postOpenApi(data, generateRest, generateRoutes, 
integrationName + integrationExtension, after)
-        } else {
-            KaravanApi.saveProjectFile(data, after)
-        }
+        KaravanApi.saveProjectFile(data, after)
     }
 
     function after (result: boolean, file: AxiosResponse<ProjectFile> | any) {
@@ -115,12 +101,7 @@ export function UploadFileModal() {
     };
 
     const fileNotUploaded = (getValues('name') === '' || getValues('code') === 
'');
-    const accept : Accept = type === 'integration'
-        ? {'application/yaml': ['.yaml', '.yml']}
-        : ( type === 'openapi'
-                ? {'application/yaml': ['.yaml', '.yml'], 'application/json': 
['.json']}
-                : {}
-        );
+    const accept : Accept = {};
     return (
         <Modal
             title="Upload"
@@ -130,7 +111,7 @@ export function UploadFileModal() {
             actions={[
                 <Button key="confirm" variant="primary"
                         onClick={handleSubmit(onSubmit)}
-                        isDisabled={Object.getOwnPropertyNames(errors).length 
> 0 || fileNotUploaded || (type === "openapi" && integrationName?.length < 3)}
+                        isDisabled={Object.getOwnPropertyNames(errors).length 
> 0 || fileNotUploaded}
                 >
                     Save
                 </Button>,
@@ -138,23 +119,6 @@ export function UploadFileModal() {
             ]}
         >
             <Form>
-                <FormGroup fieldId="type">
-                    <Radio value="Integration" label="Integration yaml" 
name="Integration" id="Integration" isChecked={type === 'integration'}
-                           onChange={(event, _) => {
-                               setType(_ ? 'integration': 'openapi' );
-                           }}
-                    />{' '}
-                    <Radio value="OpenAPI" label="OpenAPI json/yaml" 
name="OpenAPI" id="OpenAPI" isChecked={type === 'openapi'}
-                           onChange={(event, _) => {
-                               setType( _ ? 'openapi' : 'integration' );
-                           }}
-                    />
-                    <Radio value="Other" label="Other" name="Other" id="Other" 
isChecked={type === 'other'}
-                           onChange={(event, _) => {
-                               setType( _ ? 'other' : 'integration' );
-                           }}
-                    />
-                </FormGroup>
                 <FormGroup fieldId="upload">
                     <FileUpload
                         id="file-upload"
@@ -180,37 +144,6 @@ export function UploadFileModal() {
                         dropzoneProps={{accept: accept, onDropRejected: 
handleFileRejected}}
                     />
                 </FormGroup>
-                {type === 'openapi' && <FormGroup fieldId="generateRest">
-                    <Switch
-                        id="generate-rest"
-                        label="Generate REST DSL"
-                        labelOff="Do not generate REST DSL"
-                        isChecked={generateRest}
-                        onChange={(_, checked) => setGenerateRest(checked)}
-                    />
-                </FormGroup>}
-                {type === 'openapi' && generateRest && <FormGroup 
fieldId="generateRoutes">
-                    <Switch
-                        id="generate-routes"
-                        label="Generate Routes"
-                        labelOff="Do not generate Routes"
-                        isChecked={generateRoutes}
-                        onChange={(_, checked) => setGenerateRoutes(checked)}
-                    />
-                </FormGroup>}
-                {type === 'openapi' && generateRest &&
-                    <FormGroup fieldId="integrationName" label="Integration 
name">
-                        <TextInputGroup className="text-field-with-suffix">
-                            <TextInputGroupMain type="text" 
id={"integrationName"} autoComplete="off"
-                                                value={integrationName}
-                                                required
-                                                onChange={(_, value) => 
setIntegrationName(value)}
-                            >
-                            </TextInputGroupMain>
-                            <Text className='text-field-suffix' 
component={TextVariants.p}>{integrationExtension}</Text>
-                        </TextInputGroup>
-                    </FormGroup>
-                }
                 {backendError &&
                     <FormAlert>
                         <Alert variant="danger" title={backendError} 
aria-live="polite" isInline />

Reply via email to