git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorBellai Ádám <USER\adam.bellai>
Wed, 27 Sep 2017 07:18:59 +0000 (07:18 +0000)
committerBellai Ádám <USER\adam.bellai>
Wed, 27 Sep 2017 07:18:59 +0000 (07:18 +0000)
server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java
server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java
server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusAPITest.java
server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java

index 57e10ad0bc919669ddbe14348c5632cc78d35fcc..55e4e722a21865da59834763e94cca94cee9b5bc 100644 (file)
@@ -26,4 +26,6 @@ public interface IOctopusAPI {
        List<DBObject> getStories();\r
        \r
        List<DBObject> getStoriesByIDRegex(String id);\r
+       \r
+       List<DBObject> getMosObjectsByID(String id);\r
 }\r
index 73d869d0d27a8663fd2ec98ec39c70aff9d40281..d4587c621cbcd6f5ddfcb932eefc1f08878b3932 100644 (file)
@@ -26,6 +26,7 @@ public class OctopusAPI implements IOctopusAPI {
        private static final Logger logger = LogManager.getLogger();\r
        private static final String ID = "id";\r
        private static final String STORY_FOLDER = "story_folder";\r
+       private static final String MOS_OBJECTS = "mosObjects";\r
        public static final String RUNDOWN_COLLECTION_NAME = "rundowns";\r
        public static final String STORY_COLLECTION_NAME = "stories";\r
        public static final String STORY_FOLDER_COLLECTION_NAME = "story_folders";\r
@@ -206,4 +207,31 @@ public class OctopusAPI implements IOctopusAPI {
                        result = find.toArray();\r
                return result;\r
        }\r
+       \r
+       @Override\r
+       public List<DBObject> getMosObjectsByID(String id) {\r
+               List<DBObject> result = null;\r
+               List<DBObject> mosObjectsResult = new ArrayList<>();\r
+               DBCollection collection = db.getCollection(STORY_COLLECTION_NAME);\r
+               DBCursor find = collection\r
+                               .find(new BasicDBObject(MOS_OBJECTS, new BasicDBObject("$elemMatch", new BasicDBObject(ID, id))),\r
+                                               new BasicDBObject(ID, 1).append("name", 1).append("modified", 1).append(STORY_FOLDER, 1)\r
+                                                               .append("type", 1).append("mosObjects", 1))\r
+                               .sort(new BasicDBObject("name", 1));\r
+               if (find.hasNext())\r
+                       // return the story\r
+                       result = find.toArray();\r
+               for (DBObject actual : result) {\r
+                       BasicDBList actualList = (BasicDBList) actual.get("mosObjects");\r
+                       if (!actualList.isEmpty()) {\r
+                               List<BasicDBObject> mosObjectList = NoSQLUtils.asList(actualList);\r
+                               for (BasicDBObject actualMosObject : mosObjectList) {\r
+                                       long mosID = actualMosObject.getLong(ID);\r
+                                       if (id.equals(String.format("%d", mosID)))\r
+                                               mosObjectsResult.add(actualMosObject);\r
+                               }\r
+                       }\r
+               }\r
+               return mosObjectsResult;\r
+       }\r
 }\r
index 3777ffb40ab523096b076afc47df21a9e6f69025..45b0c52694ce2573200257bfbd4e34355208d54e 100644 (file)
@@ -14,6 +14,7 @@ import com.ibm.nosql.json.api.DBCollection;
 import com.ibm.nosql.json.api.DBObject;\r
 import com.ibm.nosql.json.api.NoSQLClient;\r
 \r
+import junit.framework.Assert;\r
 import user.commons.octopus.IOctopusAPI;\r
 import user.commons.octopus.OctopusAPI;\r
 \r
@@ -69,6 +70,17 @@ public class OctopusAPITest {
                sut.getStoryFolders();\r
        }\r
 \r
+       @Test\r
+       public void getMosObjectsByID() throws SQLException {\r
+               //Fixture\r
+               final String ID = "1589225";\r
+               sut = new OctopusAPI();\r
+               \r
+               List<DBObject> actual = sut.getMosObjectsByID(ID);\r
+               \r
+               Assert.assertTrue(!actual.isEmpty());\r
+       }\r
+       \r
        @Test\r
        public void getRundownByPlaceHolderIdTest() throws SQLException {\r
                // Fixture\r
index 37eb1501c8513523448316f21b855baf224dcf2a..16793baf10b90638945fdb5c864301cb0f61fe48 100644 (file)
@@ -164,4 +164,21 @@ public class OctopusRESTService {
                logger.trace("Exit");
                return result;
        }
+       
+       @GET
+       @Path("/getMosObjectsByID/{id}")
+       @Consumes({ MediaType.APPLICATION_JSON })
+       @Produces({ MediaType.APPLICATION_JSON })
+       public Response getMosObjectsByID(@PathParam("id") String id) {
+               logger.trace("Entry");
+               Response result = null;
+               try {
+                       List<DBObject> stories = octopusService.getMosObjectsByID(id);
+                       result = Response.ok(stories).build();
+               } catch (Exception e) {
+                       result = createErrorResponse(e);
+               }
+               logger.trace("Exit");
+               return result;
+       }
 }
\ No newline at end of file