1 /** 2 * Workflow to return the Path of the (asset/assets) given a list of asset Id's using a REST call 3 * 4 * @author milogertjejansen 5 */ 6 var REST = library.REST.REST(); 7 var myData = {}; 8 9 var myFields = []; 10 11 /** 12 * Creates a JSON object with the path of the given asset and adds it to myData 13 * @param theAssetId 14 */ 15 function getInfo(theAssetId) { 16 var aMap = {}; 17 18 // Get the file path. 19 var aFile = fileManager.getFileObjectById(theAssetId); 20 if (!aFile) { 21 aMap.error = "Cannot find file object."; 22 return; 23 } 24 aMap.name = aFile.name; 25 aMap.path = aFile.path; 26 27 // Image data stuff. 28 aMap.height = aFile.height; 29 aMap.width = aFile.width; 30 aMap.format = aFile.format; 31 32 // Get the some fields if we asked for them. 33 if (myFields.length > 0) { 34 aMap.fields = {}; 35 for (var i = 0; i < myFields.length; i++) { 36 var aFieldSet = myFields[i].split(" "); 37 var aProp = new Property(aFieldSet[0], aFieldSet[1]); 38 aMap.fields[myFields[i]] = aFile.xmp.meta.getField(aProp); 39 } 40 } 41 42 // Link to download asset. 43 aMap.link = 44 context.getBaseUrl() + 45 "/servlet/d/" + 46 aFile.name + 47 "?mime=application/zip&type=zip&r=asset://" + 48 theAssetId; 49 50 // Get the previews. 51 var aGetPreviewsWF = new Workflow( 52 "Renditions/Workflows/_internal/restapi/1/getPreviews.xmpwf" 53 ); 54 var aParameters = new Parameters(); 55 aParameters.put("src", theAssetId); 56 aPreviewMap = JSON.parse(aGetPreviewsWF.trigger(aParameters)); 57 aMap.previews = []; 58 for (var aKey in aPreviewMap) { 59 aMap.previews.push(aPreviewMap[aKey]); 60 } 61 62 myData[theAssetId] = aMap; 63 } 64 65 /** 66 * Returns information of assets. 67 * 68 * @description gets information on the asset. 69 * @example /wf/restapi/1/info?id=["asset_id"] 70 * @example <a target="_blank" href=http://127.0.0.1:55555/wf/restapi/1/info?id=["12345"]>http://127.0.0.1:55555/wf/restapi/1/info?id=["12345"]</a> 71 * @class Returns information of assets. 72 * @name Info 73 * @param id asset id or a list of asset ids to get info for. 74 * @returns Object { 'id1': { info }, 'id2'; { info }, ... } 75 */ 76 function main() { 77 var aParameters = REST.getParametersToIterate("id"); 78 myFields = REST.getParameter("fields", false); 79 80 if (myData.error != null) { 81 return REST.formatResponse(); 82 } 83 REST.iterateThroughParameters(aParameters, getInfo); 84 return REST.formatResponse(); 85 } 86 main(); 87