1 /**
  2  * Workflow to return information about dictionaries.
  3  *
  4  * @author milogertjejansen
  5  */
  6 var REST = library.REST.REST();
  7 var myData = {};
  8 
  9 // Action list.
 10 var kAllDictionaries = "allDictionaries";
 11 var kFindWords = "findWords";
 12 
 13 // Service data format.
 14 var myServiceData = null;
 15 
 16 // include solr facets suggestions
 17 var mySolrSuggestions = null;
 18 
 19 /**
 20  * Gets a list of dictionaries.
 21  */
 22 function listDictionaries() {
 23   var aList = dictionaryManager.listDictionaryNames();
 24 
 25   if (myServiceData === "") {
 26     myData["dictionaries"] = aList;
 27   } else {
 28     myData = [];
 29     for (var i in aList) {
 30       myData.push({ display: aList[i], value: aList[i] });
 31     }
 32   }
 33 }
 34 
 35 /**
 36  * Gets a dictionary and a list of words and put them into myData.
 37  *
 38  * @param theDictionaryName
 39  */
 40 function getDictionary(theDictionaryName) {
 41   // Return if the name is empty.
 42   if (theDictionaryName === "" || theDictionaryName === undefined) {
 43     return;
 44   }
 45 
 46   // Parse out the objects.
 47   myData[theDictionaryName] = dictionaryManager.findWords(
 48     theDictionaryName,
 49     "%",
 50     1000,
 51     false
 52   );
 53 }
 54 
 55 /**
 56  * Returns information on dictionaries.
 57  *
 58  * @description gets dictionary information.
 59  * @example /wf/restapi/1/dictionary?action=(allDictionaries|findWords)&service=(true|false)[&name=dictionaryName]
 60  * @example <a target="_blank" href=http://127.0.0.1:55555/wf/restapi/1/dictionary?action=allDictionaries&service=true>http://127.0.0.1:55555/wf/restapi/1/dictionary?action=allDictionaries&service=true</a>
 61  * @class Returns information on dictionaries.
 62  * @name dictionary
 63  * @param action the action you want to take.
 64  * @param service in some cases returns data in a dictionary backed field friendly format.
 65  * @param name [only used with action=findWords] a list of dictionaries to search in.
 66  * @returns Object
 67  */
 68 function main() {
 69   var aAction = REST.getParameter("action");
 70   myServiceData = REST.getParameter("service", false);
 71   mySolrSuggestions = REST.getParameter("withSolrSuggestions", false);
 72 
 73   if (aAction === kAllDictionaries) {
 74     listDictionaries();
 75 
 76     if (mySolrSuggestions) {
 77       myData.push({
 78         display: "SolrFacetSuggestions",
 79         value: "SolrFacetSuggestions",
 80       });
 81     }
 82   }
 83 
 84   if (aAction === kFindWords) {
 85     var aParameters = REST.getParametersToIterate("name");
 86     REST.iterateThroughParameters(aParameters, getDictionary);
 87   }
 88 
 89   if (myData.error != null) {
 90     return REST.formatResponse();
 91   }
 92   return REST.formatResponse();
 93 }
 94 main();
 95