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
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
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
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
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