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