1 var REST = library.REST.REST();
  2 
  3 function getLinks(theAsset) {
  4   var aLinks = linkManager.getLinks(theAsset.assetId);
  5   var aLinksData = {};
  6   aLinksData.linkGroups = [];
  7 
  8   for (var i in aLinks) {
  9     var aLink = aLinks[i];
 10     var aLinkGroup = {
 11       id: aLink.groupId,
 12       globalDescription: aLink.globalDescription,
 13     };
 14     aLinkGroup.links = [];
 15     var aLinksInGroup = linkManager.getAssetsInLinkGroup(theAsset, aLink);
 16     for (var j in aLinksInGroup) {
 17       var aGroupLink = aLinksInGroup[j];
 18       var aLinkedAsset = REST.getInfo(aGroupLink, {});
 19       aLinkGroup.links[aLinkGroup.links.length] = {
 20         linkDescription: aLink.description,
 21         asset: aLinkedAsset,
 22       };
 23     }
 24     aLinksData.linkGroups[aLinksData.linkGroups.length] = aLinkGroup;
 25   }
 26   REST.push(theAsset, aLinksData, true);
 27 }
 28 
 29 /**
 30  * @name GetLinks
 31  * @class Collects the asset links information
 32  * @description Given a resolver URL or an array of Id's, this endpoint returns asset data for each asset as well as its linked assets
 33  * @param [ids] The asset id's.
 34  * @param [resolver] A resolver url.
 35  * @param [verbose=false] Setting this to true will collect a variety of default values for each asset.
 36  * @param [fields] An array of field id's to collect the values for each asset
 37  * @returns [{assetInfo}, ... ]
 38  *
 39  * @example /wf/restapi/v2/getLinks
 40  *
 41  * Properties:
 42  * ids=201631708&verbose=false
 43  *
 44  * Response:
 45  [
 46  {
 47    "linkGroups": [
 48 	 {
 49 	   "id": "39D58F64-9C41-4FF9-8891-CF52EF3254A0",
 50 	   "globalDescription": "test",
 51 	   "links": [
 52 		 {
 53 		   "linkDescription": "undefined",
 54 		   "asset": {
 55 			 "id": 201631649
 56 		   }
 57 		 }
 58 	   ]
 59 	 }
 60    ],
 61    "id": 201631708
 62  }
 63  ]
 64  */
 65 (function main() {
 66   REST.setCallback(getLinks);
 67   return REST.execute();
 68 })();
 69