1 /** 2 * @name Fields 3 * @class Shows the field definitions in MediaBeacon 4 * @description Displays all of the field definitions in Mediabeacon with their name mappings 5 * @returns { 6 fieldId: string; 7 name: string; 8 type: string; 9 namespace: string; 10 mapped_namespace: string; 11 mapped_name: string; 12 is_container: boolean 13 } 14 * @example /wf/restapi/v2/fields 15 * 16 * Parameters: 17 * 18 Response: 19 [ 20 { 21 "fieldId": "http://purl.org/dc/elements/1.1/ subject", 22 "name": "subject", 23 "type": "list_string", 24 "namespace": "http://purl.org/dc/elements/1.1/", 25 "mapped_namespace": "Dublin Core Properties", 26 "mapped_name": "Keywords", 27 "is_container": true 28 }, 29 { 30 "fieldId": "http://purl.org/dc/elements/1.1/ title", 31 "name": "title", 32 "type": "string", 33 "namespace": "http://purl.org/dc/elements/1.1/", 34 "mapped_namespace": "Dublin Core Properties", 35 "mapped_name": "Title", 36 "is_container": false 37 }, 38 { 39 "fieldId": "http://purl.org/dc/elements/1.1/ type", 40 "name": "type", 41 "type": "list_string", 42 "namespace": "http://purl.org/dc/elements/1.1/", 43 "mapped_namespace": "Dublin Core Properties", 44 "mapped_name": "Document Type", 45 "is_container": true 46 },... 47 ] 48 49 */ 50 var REST = library.REST.REST(); 51 52 var kDBFields = [ 53 { name: "record_id", mapped_name: "Asset ID" }, 54 { name: "file_name", mapped_name: "File Name" }, 55 { name: "directory", mapped_name: "Directory" }, 56 //TODO not sure the below fields make sense. 57 //We would need to modify 58 //{"name": "width", "mapped_name": "Width"}, 59 //{"name": "height", "mapped_name": "Height"}, 60 //{"name": "resolution", "mapped_name": "Resolution"}, 61 //{"name": "colorspace", "mapped_name": "Colorspace"}, 62 //{"name": "colorprofile", "mapped_name": "Colorprofile"} 63 ]; 64 65 function getDBFields() { 66 var aDBFields = []; 67 for (var i in kDBFields) { 68 var aField = kDBFields[i]; 69 var anObj = { 70 fieldId: "database " + aField.name, 71 name: aField.name, 72 type: "string", 73 namespace: "database", 74 mapped_namespace: "Database", 75 mapped_name: aField.mapped_name, 76 is_container: false, 77 include_readonly: true, 78 }; 79 aDBFields[aDBFields.length] = anObj; 80 } 81 return aDBFields; 82 } 83 84 (function main() { 85 try { 86 var fields = fieldManager.getAllFields(); 87 var objs = []; 88 for (var i = 0; i < fields.length; i++) { 89 var field = fields[i]; 90 var obj = {}; 91 obj["fieldId"] = field.fieldId; 92 obj["name"] = field.name; 93 obj["type"] = field.getFieldType(); 94 obj["namespace"] = field.namespace; 95 obj["mapped_namespace"] = field.mappedNamespace; 96 obj["mapped_name"] = field.mappedName; 97 obj["is_container"] = field.isContainer(); 98 objs.push(obj); 99 } 100 return REST.formatResponse(objs.concat(getDBFields())); 101 } catch (e) { 102 logger.error("Error in getFields: \n " + e + "\n" + e.stack); 103 return e; 104 } 105 })(); 106