import {Schema} from './Schema'; import { ApiV3, CreateIdentifierResponse, FieldDefinition, IdentifierDefinition, ModulesResponse, ObjectDefinition, RelationDefinition } from './Types'; import {ODPClient} from './index'; import { createIdentifier } from './Schema/identifiers'; import { createField } from './Schema/fields'; import { createObject, getAllObjects, getObject } from './Schema/objects'; import { createRelation } from './Schema/relations'; import { enableModule, getEnabledModules } from './Schema/modules'; export class SchemaApi implements Schema { public constructor(private client: ODPClient) { } public createField = ( schemaObject: string, field: FieldDefinition ): Promise> => createField(this.client.v3Api, schemaObject, field); public createIdentifier = ( identifier: IdentifierDefinition ): Promise> => createIdentifier(this.client.v3Api, identifier); public createObject = ( schemaObject: ObjectDefinition ): Promise> => createObject(this.client.v3Api, schemaObject); public createRelation = ( schemaObject: string, relation: RelationDefinition ): Promise> => createRelation(this.client.v3Api, schemaObject, relation); public enableModule = ( module: string ): Promise> => enableModule(this.client.v3Api, module); public getAllObjects = (): Promise> => getAllObjects(this.client.v3Api); public getEnabledModules = (): Promise> => getEnabledModules(this.client.v3Api); public getObject = ( name: string ): Promise> => getObject(this.client.v3Api, name); }