This package handles everything that has to do with schemas in Hyperledger Aries. It allows to create and retrieve schemas from the ledger connected to the Aries Cloudagent.
import { EventHandler } from 'universal-ledger-agent'
import { SchemaController } from '@ula-aca/schema'
const schemaController = new SchemaController({
basePath: 'https://aca-py-api.com'
})
const eventHandler = new EventHandler([schemaController])
Gets a schema from the ledger
import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
SchemaController,
GetSchemaByIdMessage,
SchemaMessageTypes
} from '@ula-aca/schema'
const schemaController = new SchemaController({
basePath: 'https://aca-py-api.com'
})
const eventHandler = new EventHandler([schemaController])
const message: GetSchemaByIdMessage = {
type: SchemaMessageTypes.GET_SCHEMA_BY_ID,
body: {
schema_id: 'WgWxqztrNooG92RXvxSTWv:2:schema_name:1.0'
}
}
eventHandler.processMsg(message, (response: UlaResponse) => {
if (response.statusCode < 200 || response.statusCode >= 300) {
// error
} else {
// response.body is response from /schemas/{id} api endpoint in aca-py
// https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/get_schemas__id_
const result: GetSchemaByIdResult = response.body
}
})
Search for matching schema that agent originated
import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
SchemaController,
GetCreatedSchemasMessage,
SchemaMessageTypes
} from '@ula-aca/schema'
const schemaController = new SchemaController({
basePath: 'https://aca-py-api.com'
})
const eventHandler = new EventHandler([schemaController])
const message: GetCreatedSchemasMessage = {
type: SchemaMessageTypes.GET_CREATED_SCHEMAS,
body: {
// schema_id: '',
// schema_issuer_did: '',
// schema_name: '',
// schema_version: ''
}
}
eventHandler.processMsg(message, (response: UlaResponse) => {
if (response.statusCode < 200 || response.statusCode >= 300) {
// error
} else {
// response.body is response from /schemas/created api endpoint in aca-py
// https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/get_schemas_created
const result: GetCreatedSchemasResult = response.body
}
})
Sends a schema to the ledger
import { EventHandler, UlaResponse } from 'universal-ledger-agent'
import {
SchemaController,
CreateSchemaMessage,
SchemaMessageTypes
} from '@ula-aca/schema'
const schemaController = new SchemaController({
basePath: 'https://aca-py-api.com'
})
const eventHandler = new EventHandler([schemaController])
const message: CreateSchemaMessage = {
type: SchemaMessageTypes.CREATE_SCHEMA,
body: {
schema_name: 'ExampleSchema',
schema_version: '1.0',
attributes: ['first_name', 'last_name']
}
}
eventHandler.processMsg(message, (response: UlaResponse) => {
if (response.statusCode < 200 || response.statusCode >= 300) {
// error
} else {
// response.body is response from /schemas post request api endpoint in aca-py
// https://ula-aca.github.io/aries-cloudagent-interface-javascript/#/schema/post_schemas
const result: CreateSchemaResult = response.body
}
})
For example usage see the examples/
directory.