From: Bellai Ádám Date: Wed, 27 Sep 2017 07:18:59 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=157e0449bf9b84a0c74492ca70fcced2c7dffc89;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C30472 --- diff --git a/server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java b/server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java index 57e10ad0..55e4e722 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/octopus/IOctopusAPI.java @@ -26,4 +26,6 @@ public interface IOctopusAPI { List getStories(); List getStoriesByIDRegex(String id); + + List getMosObjectsByID(String id); } diff --git a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java index 73d869d0..d4587c62 100644 --- a/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java +++ b/server/user.jobengine.osgi.commons/src/user/commons/octopus/OctopusAPI.java @@ -26,6 +26,7 @@ public class OctopusAPI implements IOctopusAPI { private static final Logger logger = LogManager.getLogger(); private static final String ID = "id"; private static final String STORY_FOLDER = "story_folder"; + private static final String MOS_OBJECTS = "mosObjects"; public static final String RUNDOWN_COLLECTION_NAME = "rundowns"; public static final String STORY_COLLECTION_NAME = "stories"; public static final String STORY_FOLDER_COLLECTION_NAME = "story_folders"; @@ -206,4 +207,31 @@ public class OctopusAPI implements IOctopusAPI { result = find.toArray(); return result; } + + @Override + public List getMosObjectsByID(String id) { + List result = null; + List mosObjectsResult = new ArrayList<>(); + DBCollection collection = db.getCollection(STORY_COLLECTION_NAME); + DBCursor find = collection + .find(new BasicDBObject(MOS_OBJECTS, new BasicDBObject("$elemMatch", new BasicDBObject(ID, id))), + new BasicDBObject(ID, 1).append("name", 1).append("modified", 1).append(STORY_FOLDER, 1) + .append("type", 1).append("mosObjects", 1)) + .sort(new BasicDBObject("name", 1)); + if (find.hasNext()) + // return the story + result = find.toArray(); + for (DBObject actual : result) { + BasicDBList actualList = (BasicDBList) actual.get("mosObjects"); + if (!actualList.isEmpty()) { + List mosObjectList = NoSQLUtils.asList(actualList); + for (BasicDBObject actualMosObject : mosObjectList) { + long mosID = actualMosObject.getLong(ID); + if (id.equals(String.format("%d", mosID))) + mosObjectsResult.add(actualMosObject); + } + } + } + return mosObjectsResult; + } } diff --git a/server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusAPITest.java b/server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusAPITest.java index 3777ffb4..45b0c526 100644 --- a/server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusAPITest.java +++ b/server/user.jobengine.osgi.commons/test/user/common/octopus/test/OctopusAPITest.java @@ -14,6 +14,7 @@ import com.ibm.nosql.json.api.DBCollection; import com.ibm.nosql.json.api.DBObject; import com.ibm.nosql.json.api.NoSQLClient; +import junit.framework.Assert; import user.commons.octopus.IOctopusAPI; import user.commons.octopus.OctopusAPI; @@ -69,6 +70,17 @@ public class OctopusAPITest { sut.getStoryFolders(); } + @Test + public void getMosObjectsByID() throws SQLException { + //Fixture + final String ID = "1589225"; + sut = new OctopusAPI(); + + List actual = sut.getMosObjectsByID(ID); + + Assert.assertTrue(!actual.isEmpty()); + } + @Test public void getRundownByPlaceHolderIdTest() throws SQLException { // Fixture diff --git a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java index 37eb1501..16793baf 100644 --- a/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java +++ b/server/user.jobengine.osgi.services/src/user/jobengine/osgi/rest/octopus/OctopusRESTService.java @@ -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 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