I am trying to create insight object and I know only the ObjectTypeId. Is it possible to do it? I tried using MutableObjectBean but it didn't work like below
Creating an object is a lot more complicated than that.
And you'll need to know the name of the attribute to set the label to (typically Name).
Here is the simplest code I can figure out to create an object with a single required field.
import com.atlassian.jira.component.ComponentAccessor
import com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectFacade
import com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectTypeAttributeFacade
import com.riadalabs.jira.plugins.insight.channel.external.api.facade.ObjectTypeFacade
import com.riadalabs.jira.plugins.insight.services.model.MutableObjectBean
ObjectFacade objectFacade = ComponentAccessor.getOSGiComponentInstanceOfType(ObjectFacade)
ObjectTypeFacade objectTypeFacade = ComponentAccessor.getOSGiComponentInstanceOfType(ObjectTypeFacade)
ObjectTypeAttributeFacade objectTypeAttributeFacade = ComponentAccessor.getOSGiComponentInstanceOfType(ObjectTypeAttributeFacade)
def objectTypeId = 5
def labelValue = 'Test Object'
def attributeNameForLabel = 'Name'
def objectType = objectTypeFacade.loadObjectType(objectTypeId)
def object = objectType.createMutableObjectBean()
def objectTypeAttributes = objectTypeAttributeFacade.findObjectTypeAttributeBeans(objectType.id)
def nameAttr = objectTypeAttributes.find { it.name == attributeNameForLabel }
def nameAttributeValuesHolder = object.createObjectAttributeBean(nameAttr)
def attributeValue = nameAttributeValuesHolder.createObjectAttributeValueBean()
attributeValue.setTextValue(labelValue)
nameAttributeValuesHolder.setObjectAttributeValueBeans([attributeValue])
object.objectAttributeBeans = [nameAttributeValuesHolder]
objectFacade.storeObjectBean(object)
As you can see that are several layers.
The object contains a list of attributes. Each attribute contains a list a attributeValue objects. Each attributeValue object contains the actual text value (or number or object reference etc depending on the type).
You must create all of those layers.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.