Class RuntimeConfiguration
Allows you to get and set the user ID and PDF metadata of a product at runtime.
Package: @aurigma/design-editor-iframe
Remarks
The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the RuntimeConfiguration class.
Methods
getImageMetadata(url, fromDesignImages)
Loads metadata of an image.
Declaration
getImageMetadata(url: string, fromDesignImages?: boolean): Promise<ImageMetaData>;
Parameters
| Type | Name | Description |
|---|---|---|
| string | url |
The link to the image. |
| boolean | fromDesignImages |
If |
Returns
| Type | Description |
|---|---|
| Promise<ImageMetaData> | Image properties. |
Examples
// Get metadata of an image in the public gallery.
const metaData = await editor.configuration.getImageMetadata("public:backgrounds/azure.jpg");
getPdfMetadata()
Reads PDF metadata of the current product.
Declaration
getPdfMetadata(): Promise<IPdfMetadata>;
Returns
| Type | Description |
|---|---|
| Promise<IPdfMetadata> | The |
Examples
const data = await editor.configuration.getPdfMetadata()
.catch(error => console.error("Retrieving PDF metadata failed with exception: ", error));
console.info("getPdfMetadata returned: " + data.title);
getUserId()
Reads ID of the user working on the product.
Declaration
getUserId(): Promise<string>;
Returns
| Type | Description |
|---|---|
| Promise<string> | The user identifier. |
Examples
let editor = await CustomersCanvas.IframeApi.loadEditor(iframe, productDefinition, config);
console.log(await editor.configuration.getUserId());
setPdfMetadata(config)
Sets PDF metadata to the current product.
Declaration
setPdfMetadata(config: IPdfMetadata): Promise<void>;
Parameters
| Type | Name | Description |
|---|---|---|
| IPdfMetadata | config |
PDF metadata to be saved in the hi-res output. |
Returns
| Type | Description |
|---|---|
| Promise<void> |
Examples
editor.configuration.setPdfMetadata({
author: "John Wood",
title: "Postcard template with flowers",
keywords: "red,flower,postcard"
})
.catch(error => console.error("setPdfMetadata failed with exception: ", error));
setUserId(userId)
Sets a new user identifier and moves user files to this user's folders.
Declaration
setUserId(userId: string): Promise<void>;
Parameters
| Type | Name | Description |
|---|---|---|
| string | userId |
The new user identifier that needs to be set for the product. |
Returns
| Type | Description |
|---|---|
| Promise<void> |
Remarks
Before using this method, you must enable the secure mode and update an authentication token by using the additionalUserId parameter with the new user identifier.
Examples
<html>
<head>
<title>Setting a new user ID</title>
<!-- The IFrame API script. IMPORTANT! Do not remove or change the ID. -->
<script id="CcIframeApiScript" type="text/javascript" src="https://example.com/Resources/Generated/IframeApi.js">
</script>
</head>
<body>
<!-- The iframe to display the editor in. -->
<iframe id="editorFrame" width="100%" height="800px"></iframe>
<input type="button" value="Set User ID" onclick="setUserID()" />
<script>
let editor = null;
document.addEventListener('DOMContentLoaded', async () => {
// Initialize product with an Invitation template.
const productDefinition = { surfaces: ["invitation"] };
// Get the iframe element to display the editor in.
const iframe = document.getElementById("editorFrame");
// Load the editor.
editor = await CustomersCanvas.IframeApi.loadEditor(iframe, productDefinition)
// If there was an error thrown when loading the editor.
.catch(e => console.log(e));
});
// Set JohnWood as a new user ID.
async function setUserID() {
let userId = await editor.configuration.getUserId();
// Get an active token for the current user.
let token = (await (await fetch("https://example.com/api/Auth/Users/" + userId + "/Tokens",
{
method: "GET",
headers: { "X-CustomersCanvasAPIKey": "UniqueSecurityKey" }
})).json()).tokens[0].tokenId;
// Update the token for another user.
await fetch("https://example.com/api/Auth/Tokens/" + token + "?AdditionalUserId=JohnWood", {
method: "PUT",
headers: { "X-CustomersCanvasAPIKey": "UniqueSecurityKey" }
});
// Copy user files.
editor.configuration.setUserId("JohnWood")
.catch(e => console.log(e));
}
</script>
</body>
</html>