Class User

Summary

Create an instance of User class with optional session credentials.

Usage

await new User(topia, {
profileId: 1,
credentials: { apiKey: "exampleKey", interactiveNonce: "exampleNonce", urlSlug: "exampleWorld", visitorId: 1 }
});

Hierarchy

Implements

Constructors

Properties

credentials: undefined | InteractiveCredentials
dataObject?: null | object
jwt?: string
profile?: Record<string, any>
profileId?: null | string
requestOptions: object
topia: Topia

Accessors

  • get adminWorlds(): {
        [key: string]: World;
    }
  • Returns {
        [key: string]: World;
    }

  • get assets(): {
        [key: string]: Asset;
    }
  • Returns {
        [key: string]: Asset;
    }

  • get scenes(): {
        [key: string]: Scene;
    }
  • Returns {
        [key: string]: Scene;
    }

  • get worlds(): {
        [key: string]: World;
    }
  • Returns {
        [key: string]: World;
    }

Methods

  • Summary

    Verify user has valid interactive credentials

    Usage

    await user.checkInteractiveCredentials();
    

    Returns Promise<void | ResponseType>

  • Parameters

    • __namedParameters: {
          error?: unknown;
          message?: string;
          params?: object;
          sdkMethod?: string;
      }
      • Optional error?: unknown
      • Optional message?: string
      • Optional params?: object
      • Optional sdkMethod?: string

    Returns {
        data: {};
        message: string;
        method: string;
        params: object;
        sdkMethod: undefined | string;
        stack: string;
        stackTrace: Error;
        status: number;
        success: boolean;
        url: string;
    }

    • data: {}
      • message: string
      • method: string
      • params: object
      • sdkMethod: undefined | string
      • stack: string
      • stackTrace: Error
      • status: number
      • success: boolean
      • url: string
    • Summary

      Retrieves all worlds a user with matching API Key is an admin in, creates a new World object for each, and creates new map of Worlds accessible via user.adminWorlds.

      Usage

      await user.fetchAdminWorldsByKey();
      const adminWorlds = user.adminWorlds;

      Returns Promise<void | ResponseType>

    • Summary

      Returns all assets owned by User when an email address is provided.

      Usage

      await user.fetchAssets();
      const userAssets = user.assets;

      Returns Promise<void | ResponseType>

    • Summary

      Retrieves the data object for a user.

      Usage

      const dataObject = await user.fetchDataObject();
      

      Returns Promise<void | ResponseType>

    • Summary

      Retrieves ids of all dropped assets in all worlds with a matching interactivePublicKey.

      Usage

      await user.fetchInteractiveWorldsByKey("interactivePublicKeyExample");
      const interactiveWorlds = user.interactiveWorlds;

      Parameters

      • interactivePublicKey: string

      Returns Promise<object | ResponseType>

    • Summary

      Returns all scenes owned by User.

      Usage

      await user.fetchScenes();
      const userScenes = user.scenes;

      Returns Promise<void | ResponseType>

    • Summary

      Retrieves all worlds owned by user with matching API Key, creates a new World object for each, and creates new map of Worlds accessible via user.worlds.

      Usage

      await user.fetchWorldsByKey();
      const userWorlds = user.worlds;

      Result

      { urlSlug: new World({ apiKey, worldArgs, urlSlug }) }
      

      Returns Promise<void | ResponseType>

    • Summary

      Increments a specific value in the data object for a user by the amount specified. Must have valid interactive credentials from a visitor in the world.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await user.incrementDataObjectValue(
      "path": "key",
      "amount": 1,
      );

      Parameters

      • path: string
      • amount: number
      • options: {
            analytics?: string[];
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
        } = {}
        • Optional analytics?: string[]
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean

      Returns Promise<void | ResponseType>

    • Summary

      Sets the data object for a user.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await user.setDataObject({
      "exampleKey": "exampleValue",
      });

      Parameters

      • dataObject: undefined | null | object
      • options: {
            analytics?: string[];
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
        } = {}
        • Optional analytics?: string[]
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean

      Returns Promise<void | ResponseType>

    • Returns AxiosInstance

    • Summary

      Updates the data object for a user.

      Optionally, a lock can be provided with this request to ensure only one update happens at a time between all updates that share the same lock id

      Usage

      await user.updateDataObject({
      "exampleKey": "exampleValue",
      });

      Parameters

      • dataObject: object
      • options: {
            analytics?: string[];
            lock?: {
                lockId: string;
                releaseLock?: boolean;
            };
        } = {}
        • Optional analytics?: string[]
        • Optional lock?: {
              lockId: string;
              releaseLock?: boolean;
          }
          • lockId: string
          • Optional releaseLock?: boolean

      Returns Promise<void | ResponseType>