# All files / src/profiles/profileSchemas organization.ts

40% Statements 4/10
0% Branches 0/3
0% Functions 0/3
40% Lines 4/10

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38

    1x

    1x
    1x

    1x

     // TODO: replace with 'ajv' - its already a dependency and it is maintained
    // @ts-ignore: Could not find a declaration file for module
    import inspector from 'schema-inspector'

    import { extractProfile } from '../profileTokens'
    import { Profile } from '../profile'

    const schemaDefinition: {[key: string]: any} = {
      type: 'object',
      properties: {
        '@context': { type: 'string', optional: true },
        '@type': { type: 'string' },
        '@id': { type: 'string', optional: true }
      }
    }

    /**
     * @ignore
     */
    export class Organization extends Profile {
      constructor(profile = {}) {
        super(profile)
        this._profile = Object.assign({}, {
          '@type': 'Organization'
        }, this._profile)
      }

      static validateSchema(profile: any, strict = false) {
        schemaDefinition.strict = strict
        return inspector.validate(schemaDefinition, profile)
      }

      static fromToken(token: string, publicKeyOrAddress: string | null = null) {
        const profile = extractProfile(token, publicKeyOrAddress)
        return new Organization(profile)
      }
    }