1 var REST = library.REST.REST(); 2 var myData = {}; 3 4 /** 5 * CallBack for the search. Adds the results to myData. 6 * @param theManagedFile 7 */ 8 function aCallback(theManagedFile) { 9 myData[theManagedFile.assetId] = theManagedFile.name; 10 } 11 12 /** 13 * Adds the directory to the quickSearch 14 * @param aSearch 15 * @param theSearchDirectory 16 */ 17 function includeDirectory(aSearch, theSearchDirectory) { 18 var aPath = REST.getFullPath(theSearchDirectory); 19 var aQSCriteria = aSearch.getCriteria(); 20 var aQSCriterion = aQSCriteria.getRootCriterion(); 21 22 var aDirectoryCriterion = new DatabaseCriterion("directory"); 23 aDirectoryCriterion.setCondition(searchManager.conditions.equals); 24 aDirectoryCriterion.setValue(aPath); 25 aQSCriteria.addCriterion(aDirectoryCriterion); 26 27 var aFolderSpecificQuickSearch = new Criteria("AND"); 28 aFolderSpecificQuickSearch.addCriterion(aQSCriterion); 29 aFolderSpecificQuickSearch.addCriterion(aDirectoryCriterion); 30 aSearch.setCriteria(aFolderSpecificQuickSearch); 31 return aSearch; 32 } 33 34 /** 35 * Executes a quick search and returns a Json object with the key value pair (assetId -> fileName) 36 * @description Executes a QuickSearch using the string in 'src'. These results are parsed into a text object keyed by AssetPath from the JSON file in which they are contained, and by default are displayed to the user. 37 * @example 'MBurl'/wf/restapi/1/quickSearch?src="TheSearch" 38 * @example <a target="_blank" href=http://127.0.0.1:55555/wf/restapi/1/quickSearch?src=".jpg">http://127.0.0.1:55555/wf/restapi/1/quickSearch?src=".jpg"</a> 39 * @class Executes a quick search and returns a Json object with the key value pair (assetId -> fileName) 40 * @name QuickSearch 41 * @param src a search term. 42 * @param directory a directory path to limit the search to ex. "Assets/testAssets/" 43 * @param pageSize default 100 44 * @param pageNumber default 0 45 * @param sortDirection "ASC" or "DESC" 46 * @param sortField the namespace of the desired field ex "record_id" or "http://purl.org/dc/elements/1.1/ subject" 47 * @returns ( {'AssetID': "FileName",...} ) 48 */ 49 function main() { 50 var aSearchString = REST.getParameter("src", true); 51 var aSearchDirectory = REST.getParameter("directory", false); 52 if (myData.error != null) { 53 return REST.formatResponse(); 54 } 55 var aSearch = new Search(); 56 aSearch.createQuickSearch(aSearchString); 57 if (!!aSearchDirectory) { 58 aSearch = includeDirectory(aSearch, aSearchDirectory); 59 } 60 REST.executeWithPaging(aSearch, aCallback); 61 return REST.formatResponse(); 62 } 63 main(); 64