ProfileApi

This class implements BaseApi.

You need the profile:read scope to access this API.

This is a JavaScript implementation of the Profile API.

For ease of use we recommend using the User object for interaction instead.

Interfaces

OrganizationProfileInfoWithId

interface OrganizationProfileInfoWithId implements OrganizationProfileInfo {
    id: number
}

OrganizationProfileInfo

interface OrganizationProfileInfo {
    name: string,
    address?: string,
    city?: string,
    country?: string,
    state?: string,
    website?: string,
    verified?: boolean,
    uniqueId?: string,
    zipCode?: string
}

ProfileInfo

interface ProfileInfo {
    firstName?: string,
    lastName?: string,
    country?: { 
        alpha2: string,
        name: string
    },
    email?: {
        value: string,
        confirmed: boolean
    },
    kycVerified?: boolean,
    state?: string,
    profilePicture?: string
}

Methods

constructor(user, endpoint)

Create a Profile API object.

  • user should be an instance of the User object.

  • endpoint should be the Vulos Identity endpoint.

const profileApi = new ProfileApi(user, endpoint)

async info(id)

Get an user's public profile by the user's ID.

The result implements the ProfileInfo interface.

This method's response has the profile:info cache prefix.

const userProfile = await profileApi.info(userId)

async organization(id)

Get an organization's public profile by the organization's ID.

The result implements the OrganizationProfileInfo interface.

This method's response has the profile:organization cache prefix.

const organizationProfile = await profileApi.organization(organizationId)

async organizationSearch(search, amount, offset)

Search for an organization by name using a string.

  • search is the string we are searching with in the organization's name;

  • amount is the maximal amount of elements that can be returned (absolute maximal is 100, default is 10), this argument is optional;

  • offset is the amount of organizations that will get skipped in the result (default is 0), this argument is optional;

The result implements the OrganizationProfileInfoWithId interface.

This method's response has the profile:organization:search cache prefix.

const [bestMatch] = await profileApi.organizationSearch('Example')

// ... or

let pageIndex = 0
const organizationsPerPage = 5

const nextPage = async () => {
    const organizations = await profileApi.organizationSearch(
        'Example',
         organizationsPerPage,
         organizationsPerPage * pageIndex)
     pageIndex++
     return organizations
 }
 
let currentPage

while(currentPage = await nextPage()) {
    // do something with the current page
}

Last updated