Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def handleAttr(def className, attrName, def attr) {
- def attrCode = api.metainfo.getMetaClass(className).getAttribute(attrName).type.code;
- switch (attrCode) {
- case ['object', 'boLinks', 'backBOLinks']:
- return ['UUID': attr?.UUID, 'title': attr?.title];
- case ['catalogItem', 'catalogItemSet']:
- return ['UUID': attr?.UUID, 'code': attr?.code, 'title': attr?.title];
- default:
- return attr;
- }
- }
- def getData(def requestData) {
- if(!requestData?.className) {
- "Не задан код справочника или класса".with{ utils.throwReadableException(it, null); }
- }
- def queryColumns = requestData.queryColumns ?: [:];
- def selectAttrs = requestData.selectColumns ?: api.metainfo.getMetaClass(requestData.className).attributes*.code;
- return modules.common.gson(utils.find(requestData.className, queryColumns).collect{ obj ->
- selectAttrs.collectEntries { attr ->
- return ["${attr}": handleAttr(requestData.className, attr, obj."${attr}")];
- }
- });
- }
- def requestData = [className: 'ae$subSystem', selectColumns: ['currentProject']]; //with select columns
- requestData = [className: 'ae$subSystem']; //select all attributes from class
- requestData = [className: 'cycle']; //select all attributes from catalog
- requestData = [className: '']; //validate input data
- return getData(requestData);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement