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