String _contentFilterDate = request.getParameter( "remoteFilterDate" );
String bundleName = request.getParameter( "bundleName" );
String bundleId = request.getParameter( "bundleSelect" );
try {
Bundle bundle;
if ( bundleId == null || bundleName.equals( bundleId ) ) {
// if the user has a unsent bundle with that name just add to it
bundle=null;
for(Bundle b : APILocator.getBundleAPI().getUnsendBundlesByName(getUser().getUserId(), bundleName, 1000, 0)) {
if(b.getName().equalsIgnoreCase(bundleName)) {
bundle=b;
}
}
if(bundle==null) {
bundle = new Bundle( bundleName, null, null, getUser().getUserId() );
APILocator.getBundleAPI().saveBundle( bundle );
}
} else {
bundle = APILocator.getBundleAPI().getBundleById( bundleId );
}
//Put the selected bundle in session in order to have last one selected
request.getSession().setAttribute( WebKeys.SELECTED_BUNDLE + getUser().getUserId(), bundle );
List<String> ids;
if ( _assetId.startsWith( "query_" ) ) { //Support for lucene queries
String luceneQuery = _assetId.replace( "query_", "" );
List<String> queries = new ArrayList<String>();
queries.add( luceneQuery );
ids = PublisherUtil.getContentIds( queries );
} else {
String[] _assetsIds = _assetId.split( "," );//Support for multiple ids in the assetIdentifier parameter
List<String> assetsIds = Arrays.asList( _assetsIds );
ids = getIdsToPush( assetsIds,bundle.getId(), _contentFilterDate, new SimpleDateFormat( "yyyy-MM-dd-H-m" ) );
}
Map<String, Object> responseMap = publisherAPI.saveBundleAssets( ids, bundle.getId(), getUser() );
//If we have errors lets return them in order to feedback the user
if ( responseMap != null && !responseMap.isEmpty() ) {
//Error messages