Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions src/components/database/ElasticSearchDatabase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -472,10 +472,11 @@ export class ElasticsearchDdoDatabase extends AbstractDdoDatabase {
}

getDDOSchema(ddo: Record<string, any>) {
const ddoInstance = DDOManager.getDDOClass(ddo)
const { nft } = ddoInstance.getDDOFields() as any
let schemaName: string | undefined
if (nft?.state !== 0) {
const ddoInstance = DDOManager.getDDOClass(ddo)
const ddoData = ddoInstance.getDDOData()

if ('indexedMetadata' in ddoData && ddoData?.indexedMetadata?.nft.state !== 0) {
schemaName = 'op_ddo_short'
} else if (ddo.version) {
schemaName = `op_ddo_v${ddo.version}`
Expand All @@ -492,8 +493,8 @@ export class ElasticsearchDdoDatabase extends AbstractDdoDatabase {

async validateDDO(ddo: Record<string, any>): Promise<boolean> {
const ddoInstance = DDOManager.getDDOClass(ddo)
const { nft } = ddoInstance.getDDOFields() as any
if ('indexedMetadata' in ddoInstance.getDDOData() && nft?.state !== 0) {
const ddoData = ddoInstance.getDDOData()
if ('indexedMetadata' in ddoData && ddoData.indexedMetadata?.nft?.state !== 0) {
// Skipping validation for short DDOs as it currently doesn't work
// TODO: DDO validation needs to be updated to consider the fields required by the schema
// See github issue: https://github.com/oceanprotocol/ocean-node/issues/256
Expand Down
8 changes: 5 additions & 3 deletions src/components/database/TypenseDatabase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,9 @@ export class TypesenseDdoDatabase extends AbstractDdoDatabase {
getDDOSchema(ddo: Record<string, any>): TypesenseSchema {
// Find the schema based on the DDO version OR use the short DDO schema when state !== 0
let schemaName: string
if (ddo.indexedMetadata?.nft?.state !== 0) {
const ddoInstance = DDOManager.getDDOClass(ddo)
const ddoData = ddoInstance.getDDOData()
if ('indexedMetadata' in ddoData && ddoData?.indexedMetadata?.nft.state !== 0) {
schemaName = 'op_ddo_short'
} else if (ddo.version) {
schemaName = `op_ddo_v${ddo.version}`
Expand All @@ -388,8 +390,8 @@ export class TypesenseDdoDatabase extends AbstractDdoDatabase {

async validateDDO(ddo: Record<string, any>): Promise<boolean> {
const ddoInstance = DDOManager.getDDOClass(ddo)
const { nft } = ddoInstance.getDDOFields() as any
if ('indexedMetadata' in ddoInstance.getDDOData() && nft?.state !== 0) {
const ddoData = ddoInstance.getDDOData()
if ('indexedMetadata' in ddoData && ddoData.indexedMetadata?.nft?.state !== 0) {
// Skipping validation for short DDOs as it currently doesn't work
// TODO: DDO validation needs to be updated to consider the fields required by the schema
// See github issue: https://github.com/oceanprotocol/ocean-node/issues/256
Expand Down
Loading