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

lahirujayathilake pushed a commit to branch cybershuttle-staging
in repository https://gitbox.apache.org/repos/asf/airavata.git

commit 8d19d88878633253698a8aea0deb86d9e62a5a39
Author: ganning127 <[email protected]>
AuthorDate: Sun Mar 30 23:29:58 2025 -0400

    Add support for ModelResource
---
 .../service/controller/ProjectController.java      | 17 +++++++------
 .../research/service/enums/ResourceTypeEnum.java   |  4 ++-
 .../research/service/handlers/ProjectHandler.java  |  3 +++
 .../service/model/entity/ModelResource.java        | 29 ++++++++++++++++++++++
 4 files changed, 44 insertions(+), 9 deletions(-)

diff --git 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java
 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java
index f9ef89d4c9..534480055b 100644
--- 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java
+++ 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/controller/ProjectController.java
@@ -20,9 +20,7 @@ package org.apache.airavata.research.service.controller;
 
 import org.apache.airavata.research.service.ResponseTypes.ResourceResponse;
 import org.apache.airavata.research.service.enums.ResourceTypeEnum;
-import org.apache.airavata.research.service.model.entity.DatasetResource;
-import org.apache.airavata.research.service.model.entity.RepositoryResource;
-import org.apache.airavata.research.service.model.entity.Resource;
+import org.apache.airavata.research.service.model.entity.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -32,7 +30,6 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
 import org.springframework.web.bind.annotation.*;
 
-import org.apache.airavata.research.service.model.entity.NotebookResource;
 import org.apache.airavata.research.service.handlers.ProjectHandler;
 
 import org.springframework.http.ResponseEntity;
@@ -47,28 +44,32 @@ public class ProjectController {
     @org.springframework.beans.factory.annotation.Autowired
     private ProjectHandler projectHandler;
 
-
-    // Endpoint for adding a DatasetResource
     @PostMapping("/dataset")
     public ResponseEntity<ResourceResponse> createDatasetResource(@RequestBody 
DatasetResource datasetResource) {
         ResourceResponse response = 
projectHandler.createResource(datasetResource, ResourceTypeEnum.DATASET);
         return ResponseEntity.ok(response);
     }
 
-    // Endpoint for adding a NotebookResource
     @PostMapping("/notebook")
     public ResponseEntity<ResourceResponse> 
createNotebookResource(@RequestBody NotebookResource notebookResource) {
         ResourceResponse response = 
projectHandler.createResource(notebookResource, ResourceTypeEnum.NOTEBOOK);
         return ResponseEntity.ok(response);
     }
 
-    // Endpoint for adding a RepositoryResource
     @PostMapping("/repository")
     public ResponseEntity<ResourceResponse> 
createRepositoryResource(@RequestBody RepositoryResource repositoryResource) {
         ResourceResponse response = 
projectHandler.createResource(repositoryResource, ResourceTypeEnum.REPOSITORY);
         return ResponseEntity.ok(response);
     }
 
+    @PostMapping("/model")
+    public ResponseEntity<ResourceResponse> createModelResource(@RequestBody 
ModelResource modelResource) {
+        ResourceResponse response = 
projectHandler.createResource(modelResource, ResourceTypeEnum.MODEL);
+        return ResponseEntity.ok(response);
+    }
+
+
+
     @Operation(
             summary = "Get dataset, notebook, or repository"
     )
diff --git 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java
 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java
index c99b4c05f7..7b82af32fc 100644
--- 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java
+++ 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/enums/ResourceTypeEnum.java
@@ -3,7 +3,9 @@ package org.apache.airavata.research.service.enums;
 public enum ResourceTypeEnum {
     NOTEBOOK("NOTEBOOK"),
     DATASET("DATASET"),
-    REPOSITORY("REPOSITORY");
+    REPOSITORY("REPOSITORY"),
+    MODEL("MODEL");
+
 
     private String str;
     ResourceTypeEnum(String str) {
diff --git 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java
 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java
index db140ac134..8cccae6454 100644
--- 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java
+++ 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/handlers/ProjectHandler.java
@@ -99,9 +99,12 @@ public class ProjectHandler {
             response.setType(ResourceTypeEnum.NOTEBOOK);
         } else if (resource instanceof RepositoryResource) {
             response.setType(ResourceTypeEnum.REPOSITORY);
+        } else if (resource instanceof ModelResource) {
+            response.setType(ResourceTypeEnum.MODEL);
         } else {
             throw new RuntimeException("Unknown resource type: " + 
resource.getClass().getName());
         }
+
         return response;
     }
 
diff --git 
a/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java
 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java
new file mode 100644
index 0000000000..621b263400
--- /dev/null
+++ 
b/modules/research-framework/research-service/src/main/java/org/apache/airavata/research/service/model/entity/ModelResource.java
@@ -0,0 +1,29 @@
+package org.apache.airavata.research.service.model.entity;
+
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+
+@Entity
+public class ModelResource extends Resource {
+    @Column(nullable = false)
+    private String applicationInterfaceId;
+
+    @Column(nullable = false)
+    private String version;
+
+    public String getApplicationInterfaceId() {
+        return applicationInterfaceId;
+    }
+
+    public void setApplicationInterfaceId(String applicationInterfaceId) {
+        this.applicationInterfaceId = applicationInterfaceId;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+}

Reply via email to