We need to further split up logic in publish to easily enable edit functionality.
For this we should create a NautilusDDO class providing a wrapper for the ocean.js DDO.
This should add additional functionality to the DDO:
[x] move metadata from NautilusAsset to NautilusDDO
[x] move services from NautilusAsset to NautilusDDO
[x] construct ocean.js ddo using NautilusDDO on publish:
helper function, e.g. getDDO(), which returns NautilusDDO.ddo
helper function to construct the ddo using metadata & services, e.g. buildDDO. ddo can contain an already published DDO, in that case the configs in metadata and services will overwrite previous data
Motivation / Problem
We want to enable editing from within Nautilus.
10
Solution
We need to further split up logic in publish to easily enable edit functionality. For this we should create a
NautilusDDO
class providing a wrapper for the ocean.js DDO.This should add additional functionality to the DDO:
metadata
fromNautilusAsset
toNautilusDDO
services
fromNautilusAsset
toNautilusDDO
NautilusDDO
on publish:getDDO()
, which returnsNautilusDDO.ddo
ddo
usingmetadata
&services
, e.g.buildDDO
.ddo
can contain an already published DDO, in that case the configs inmetadata
andservices
will overwrite previous datagetDDO
returnsbuildDDO()
ifmetadata | services != undefined
ddo
else