private static final String LINEFEED = "\r\n";\r
private static final String SIMPLE_LINEFEED = "\n";\r
private static final String SAVING_STORY_ID = "Saving story {}";\r
- private static final String FIELDS_STORIES = "id,name,modified,type,format,mosObjects,script,scheduleFrom,scheduleTo,customColumns,CustomColumn.label,CustomColumn.value,reporters,User.longName,User.userName";\r
+ private static final String FIELDS_STORIES = "id,name,modified,type,format,mosObjects,script,scheduleFrom,scheduleTo,customColumns,CustomColumn.label,CustomColumn.value,reporters,User.longName,User.userName,descriptions,StoryDescription.text";\r
private static final String FIELDS_RUNDOWN = "id,name,modified,scheduledStart,channel,Channel.name,rundownType,RundownType.name";\r
private static final String FIELDS_RUNDOWN_STORYIDS = "id,slugs,Slug.storyId,Slug.position";\r
private static final String FIELDS_STORYFOLDER = "id,name,modified";\r
private static final String FIELDS_STORYFOLDER_STORYIDS = "id,stories,Story.id";\r
private static final String RUNDOWN = "Rundown";\r
- // private static final String OCTOPUS_DEVICE_NAME = "Octopus-Device-Name";\r
- // private static final String OCTOPUS_DEVICE_ID = "Octopus-Device-Id";\r
private static final String FIELDS = "fields";\r
private static final String EXIT = "Exit";\r
private static final String RESULT = "result";\r
private static final String MOSLABEL = "MOS: ";\r
private static final Object STORY = "Story";\r
\r
- // private static String OCTOPUS_API_ADDRESS =\r
- // SystemConfiguration.getInstance().value("services.octopus.api.address");\r
- // private static String OCTOPUS_API_USER =\r
- // SystemConfiguration.getInstance().value("services.octopus.api.user");\r
- // private static String OCTOPUS_API_PASSWORD =\r
- // SystemConfiguration.getInstance().value("services.octopus.api.password");\r
private DB db;\r
private ResteasyWebTarget webTarget;\r
private HashSet<Long> storyIDs = new HashSet<>();\r
return scriptContent;\r
}\r
\r
- private String extractCustomColumnValue(String columnName, BasicDBObject story) {\r
+ /***\r
+ * Get all custom columns label/non-null-value pair as map\r
+ * \r
+ * @param story\r
+ * @return\r
+ */\r
+ private BasicDBObject getCustomColumns(BasicDBObject story) {\r
+ BasicDBObject result = new BasicDBObject();\r
List<BasicDBObject> customColumns = NoSQLUtils.asList(story, IOctopusAPI.CUSTOM_COLUMNS);\r
if (customColumns == null)\r
return null;\r
- String result = null;\r
for (BasicDBObject customColumn : customColumns) {\r
- if (!customColumn.containsKey(IOctopusAPI.LABEL))\r
- continue;\r
- String currentName = customColumn.getString(IOctopusAPI.LABEL);\r
+ String currentName = NoSQLUtils.asString(customColumn, IOctopusAPI.LABEL);\r
if (currentName == null)\r
continue;\r
- if (!currentName.toLowerCase().equals(columnName.toLowerCase()))\r
- continue;\r
- if (!customColumn.containsKey(IOctopusAPI.VALUE))\r
+ String currentValue = NoSQLUtils.asString(customColumn, IOctopusAPI.VALUE);\r
+ if (currentValue == null)\r
continue;\r
- result = customColumn.getString(IOctopusAPI.VALUE);\r
- break;\r
+ result.put(currentName, currentValue);\r
}\r
return result;\r
}\r
\r
+ private String getDescriptions(BasicDBObject story) {\r
+ StringBuilder result = new StringBuilder();\r
+ List<BasicDBObject> descriptions = NoSQLUtils.asList(story, IOctopusAPI.DESCRIPTIONS);\r
+ if (descriptions == null)\r
+ return null;\r
+ for (BasicDBObject description : descriptions) {\r
+ String currentDesc = NoSQLUtils.asString(description, IOctopusAPI.TEXT);\r
+ if (currentDesc == null)\r
+ continue;\r
+ result.append(currentDesc);\r
+ }\r
+ return result.toString();\r
+ }\r
+\r
private BasicDBList extractRelevantMOSObjects(BasicDBObject story) {\r
List<BasicDBObject> mosObjects = NoSQLUtils.asList(story, IOctopusAPI.MOS_OBJECTS);\r
if (mosObjects == null)\r
throw new RuntimeException(e.getString("message"));\r
\r
}\r
- // {"exception":{"message":"Invalid\r
- // credentials.","publicName":"AuthenticationFailedException"}}\r
-\r
return result;\r
}\r
\r
private Builder query(String path, String fields) {\r
ResteasyWebTarget target = webTarget.path(path).queryParam(FIELDS, fields);\r
- // Builder result = target.request().header(OCTOPUS_DEVICE_ID,\r
- // OCTOPUS_API_USER).header(OCTOPUS_DEVICE_NAME, OCTOPUS_API_PASSWORD);\r
Builder result = target.request();\r
return result;\r
}\r
else\r
story.put(IOctopusAPI.MOS_OBJECTS, modifiedMOS);\r
\r
- String parentStoryId = extractCustomColumnValue(IOctopusAPI.PARENT_STORY_ID, story);\r
+ BasicDBObject customColumns = getCustomColumns(story);\r
+ String parentStoryId = NoSQLUtils.asString(customColumns, IOctopusAPI.PARENT_STORY_ID);\r
if (parentStoryId == null) {\r
logger.warn("Missing {} in story", IOctopusAPI.PARENT_STORY_ID, story.toPrettyString(null));\r
story.append(IOctopusAPI.PARENT_STORY_ID, storyID);\r
} else\r
story.append(IOctopusAPI.PARENT_STORY_ID, parentStoryId);\r
\r
+ String location = NoSQLUtils.asString(customColumns, IOctopusAPI.LOCATION_HU);\r
+ story.append(IOctopusAPI.LOCATION, location);\r
+ story.append(IOctopusAPI.DESCRIPTIONS, getDescriptions(story));\r
+\r
story.remove(IOctopusAPI.CUSTOM_COLUMNS);\r
\r
logger.debug(SAVING_STORY_ID, storyID);\r
import user.commons.configuration.SystemConfiguration;\r
\r
public interface IOctopusAPI {\r
- static final String RUNDOWN_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.rundowns-collection-name");\r
- static final String STORY_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.stories-collection-name");\r
- static final String FOLDER_COLLECTION = SystemConfiguration.getInstance().value("services.octopus.folders-collection-name");\r
+ static final String RUNDOWN_COLLECTION = SystemConfiguration.getInstance()\r
+ .value("services.octopus.rundowns-collection-name");\r
+ static final String STORY_COLLECTION = SystemConfiguration.getInstance()\r
+ .value("services.octopus.stories-collection-name");\r
+ static final String FOLDER_COLLECTION = SystemConfiguration.getInstance()\r
+ .value("services.octopus.folders-collection-name");\r
static final String TIME_COLLECTION_NAME = "time";\r
static final String SCRIPT_CONTENT = "script_content";\r
static final String RUNDOWN_TYPE = "rundownType";\r
static final String LASTUPDATE_TIME = "lastUpdateTime";\r
static final String NEXIO_MOS = "NEXIO.MOS";\r
static final String PARENT_STORY_ID = "parentStoryId";\r
+ static final String LOCATION_HU = "HelyszĂn";\r
+ static final String LOCATION = "location";\r
static final String VALUE = "value";\r
static final String CUSTOM_COLUMNS = "customColumns";\r
+ static final String DESCRIPTIONS = "descriptions";\r
static final String MOS_ID = "mosId";\r
static final String MOS_OBJECTS = "mosObjects";\r
static final String NAME = "name";\r