From 68ded23c9af361fa719a447b5def40131719f0df Mon Sep 17 00:00:00 2001 From: Andy Stark <30621568+therealandeeee@users.noreply.github.com> Date: Tue, 13 Feb 2018 22:44:47 +0000 Subject: [PATCH] [ADF-1769] Added JSDocs to services (#2937) * [ADF-1769] Added JSDocs to services * Removed JSDoc return directives from doc comments --- docs/folder-actions.service.md | 13 ++ docs/form-rendering.service.md | 21 +-- docs/form.service.md | 128 ++++++++++++++---- docs/highlight-transform.service.md | 7 +- docs/nodes-api.service.md | 53 +++++--- .../services/folder-actions.service.ts | 13 ++ lib/core/form/services/form.service.ts | 96 +++++++++++-- .../dynamic-component-mapper.service.ts | 16 +++ .../services/highlight-transform.service.ts | 6 + lib/core/services/nodes-api.service.ts | 41 ++++++ 10 files changed, 331 insertions(+), 63 deletions(-) diff --git a/docs/folder-actions.service.md b/docs/folder-actions.service.md index 60720e83fb..396cb45bd9 100644 --- a/docs/folder-actions.service.md +++ b/docs/folder-actions.service.md @@ -2,6 +2,19 @@ Implements the folder menu actions for the Document List component. +## Methods + +- `getHandler(key: string): ContentActionHandler` + Gets the handler function for an action. + - `key` - Identifier for the action +- `setHandler(key: string, handler: ContentActionHandler): boolean` + Sets a new handler function for an action. + - `key` - Identifier for the action + - `handler` - The new handler function +- `canExecuteAction(obj: any): boolean` + Checks if an action is available for a particular item. + - `obj` - Item to check + ## Details This service implements the built-in actions that can be applied to a folder diff --git a/docs/form-rendering.service.md b/docs/form-rendering.service.md index fa2f47662b..7f43b5876e 100644 --- a/docs/form-rendering.service.md +++ b/docs/form-rendering.service.md @@ -4,14 +4,19 @@ Maps an APS form field type string onto the corresponding form widget component ## Methods -`getComponentTypeResolver(fieldType: string, defaultValue: Type<{}> = UnknownWidgetComponent): ComponentTypeResolver`
-Gets the currently active ComponentTypeResolver function for a field type. - -`setComponentTypeResolver(fieldType: string, resolver: ComponentTypeResolver, override: boolean = false)`
-Sets or optionally replaces a ComponentTypeResolver function for a field type. - -`resolveComponentType(field: FormFieldModel, defaultValue: Type<{}> = UnknownWidgetComponent): Type<{}>`
-Finds the component type that is needed to render a form field. +- `getComponentTypeResolver(type: string, defaultValue: Type<{}> = this.defaultValue): DynamicComponentResolveFunction` + Gets the currently active ComponentTypeResolver function for a field type. + - `type` - The type whose resolver you want + - `defaultValue` - Default type returned for types that are not yet mapped +- `setComponentTypeResolver(type: string, resolver: DynamicComponentResolveFunction, override: boolean = false)` + Sets or optionally replaces a ComponentTypeResolver function for a field type. + - `type` - The type whose resolver you want to set + - `resolver` - The new resolver function + - `override` - The new resolver will only replace an existing one if this parameter is true +- `resolveComponentType(model: DynamicComponentModel, defaultValue: Type<{}> = this.defaultValue): Type<{}>` + Finds the component type that is needed to render a form field. + - `model` - \[Form field model](form-field.model.md) for the field to render + - `defaultValue` - Default type returned for field types that are not yet mapped. ## Details diff --git a/docs/form.service.md b/docs/form.service.md index 429ca737ad..11ee12d841 100644 --- a/docs/form.service.md +++ b/docs/form.service.md @@ -46,26 +46,108 @@ class MyComponent { ### Methods -| Name | Params | Returns | Description | -| ---- | ------ | ------- | ----------- | -| createFormFromANode | (formName: string) | Observable\\<any> | Create a Form with a fields for each metadata properties | -| createForm | (formName: string) | Observable\\<any> | Create a Form | -| addFieldsToAForm | (formId: string, formModel: FormDefinitionModel) | Observable\\<any> | Add Fileds to A form | -| searchFrom | (name: string) | Observable\\<any> | Search For A Form by name | -| getForms | n/a | Observable\\<any> | Get All the forms | -| getProcessDefinitions | n/a | Observable\\<any> | Get Process Definitions | -| getTasks | n/a | Observable\\<any> | Get All the Tasks | -| getTask | (taskId: string) | Observable\\<any> | Get Task | -| saveTaskForm | (taskId: string, formValues: FormValues) | Observable\\<any> | Save Task Form | -| completeTaskForm | (taskId: string, formValues: FormValues, outcome?: string) | Observable\\<any> | Complete Task Form | -| getTaskForm | (taskId: string) | Observable\\<any> | Get Form related to a taskId | -| getFormDefinitionById | (formId: string) | Observable\\<any> | Get Form Definition | -| getFormDefinitionByName | (name: string) | Observable\\<any> | Returns form definition by a given name. | -| getStartFormInstance | (processId: string) | Observable\\<any> | Get start form instance for a given processId | -| getStartFormDefinition | (processId: string) | Observable\\<any> | Get start form definition for a given process | -| getRestFieldValues | (taskId: string, field: string) | Observable\\<any> | | -| getRestFieldValuesByProcessId | (processDefinitionId: string, field: string) | Observable\\<any> | | -| getRestFieldValuesColumnByProcessId | (processDefinitionId: string, field: string, column?: string) | Observable\\<any> | | -| getRestFieldValuesColumn | (taskId: string, field: string, column?: string) | Observable\\<any> | | -| getWorkflowGroups\\ | (filter: string, groupId?: string) | Observable\\<GroupModel\[]> | | -| getWorkflowUsers\\ | (filter: string, groupId?: string) | Observable\\<GroupUserModel\[]> | | +- `parseForm(json: any, data?: FormValues, readOnly: boolean = false): FormModel` + Parses JSON data to create a corresponding Form model. + - `json` - JSON to create the form + - `data` - (Optional) Values for the form fields + - `readOnly` - Should the form fields be read-only? +- `createFormFromANode(formName: string): Observable` + Create a Form with a field for each metadata property. + - `formName` - Name of the new form +- `createForm(formName: string): Observable` + Create a Form. + - `formName` - Name of the new form +- `saveForm(formId: string, formModel: FormDefinitionModel): Observable` + Saves a form. + - `formId` - ID of the form to save + - `formModel` - Model data for the form +- `addFieldsToAForm(formId: string, formModel: FormDefinitionModel): Observable` + + - `formId` - ID of the form + - `formModel` - Form definition +- `searchFrom(name: string): Observable` + Search for a form by name. + - `name` - The form name to search for +- `getForms(): Observable` + Gets all the forms. + +- `getProcessDefinitions(): Observable` + Get Process Definitions + +- `getProcessVarablesById(processInstanceId: string): Observable` + Get instance variables for a process. + - `processInstanceId` - ID of the target process +- `getTasks(): Observable` + Gets all the tasks. + +- `getTask(taskId: string): Observable` + Gets a task. + - `taskId` - Task Id +- `saveTaskForm(taskId: string, formValues: FormValues): Observable` + Save Task Form. + - `taskId` - Task Id + - `formValues` - Form Values +- `completeTaskForm(taskId: string, formValues: FormValues, outcome?: string): Observable` + Complete Task Form + - `taskId` - Task Id + - `formValues` - Form Values + - `outcome` - (Optional) Form Outcome +- `getTaskForm(taskId: string): Observable` + Get Form related to a taskId + - `taskId` - Task Id +- `getFormDefinitionById(formId: string): Observable` + Get Form Definition + - `formId` - Form Id +- `getFormDefinitionByName(name: string): Observable` + Returns form definition with a given name. + - `name` - The form name +- `getStartFormInstance(processId: string): Observable` + Get start form instance for a given processId + - `processId` - Process definition ID +- `getProcessIntance(processId: string): Observable` + Gets a process instance. + - `processId` - ID of the process to get +- `getStartFormDefinition(processId: string): Observable` + Get start form definition for a given process + - `processId` - Process definition ID +- `getRestFieldValues(taskId: string, field: string): Observable` + Gets values of fields populated by a REST backend. + - `taskId` - Task identifier + - `field` - Field identifier +- `getRestFieldValuesByProcessId(processDefinitionId: string, field: string): Observable` + Gets values of fields populated by a REST backend using a process ID. + - `processDefinitionId` - Process identifier + - `field` - Field identifier +- `getRestFieldValuesColumnByProcessId(processDefinitionId: string, field: string, column?: string): Observable` + Gets column values of fields populated by a REST backend using a process ID. + - `processDefinitionId` - Process identifier + - `field` - Field identifier + - `column` - (Optional) Column identifier +- `getRestFieldValuesColumn(taskId: string, field: string, column?: string): Observable` + Gets column values of fields populated by a REST backend. + - `taskId` - Task identifier + - `field` - Field identifier + - `column` - (Optional) Column identifier +- `getUserProfileImageApi(userId: number): string` + Returns a URL for the profile picture of a user. + - `userId` - ID of the target user +- `getWorkflowUsers(filter: string, groupId?: string): Observable` + Gets a list of workflow users. + - `filter` - Filter to select specific users + - `groupId` - (Optional) Group ID for the search +- `getWorkflowGroups(filter: string, groupId?: string): Observable` + Gets a list of groups in a workflow. + - `filter` - Filter to select specific groups + - `groupId` - (Optional) Group ID for the search +- `getFormId(res: any): string` + Gets the ID of a form. + - `res` - Object representing a form +- `toJson(res: any): any` + Creates a JSON representation of form data. + - `res` - Object representing form data +- `toJsonArray(res: any): any` + Creates a JSON array representation of form data. + - `res` - Object representing form data +- `handleError(error: any): Observable` + Reports an error message. + - `error` - Data object with optional \`message\` and \`status\` fields for the error diff --git a/docs/highlight-transform.service.md b/docs/highlight-transform.service.md index 7579dd0c8e..bdc90178a6 100644 --- a/docs/highlight-transform.service.md +++ b/docs/highlight-transform.service.md @@ -4,8 +4,11 @@ Adds HTML to a string to highlight chosen sections. ## Methods -`public highlight(text: string, search: string, wrapperClass: string = 'highlight'): HightlightTransformResult`
-Searches for `search` string(s) within `text` and highlights all occurrences. +- `highlight(text: string, search: string, wrapperClass: string = 'highlight'): HightlightTransformResult` + Searches for `search` string(s) within `text` and highlights all occurrences. + - `text` - Text to search within + - `search` - Text pattern to search for + - `wrapperClass` - CSS class used to provide highlighting style ## Details diff --git a/docs/nodes-api.service.md b/docs/nodes-api.service.md index fed1b10f59..e9ab91a50a 100644 --- a/docs/nodes-api.service.md +++ b/docs/nodes-api.service.md @@ -4,26 +4,39 @@ Accesses and manipulates ACS document nodes using their node IDs. ## Methods -`getNode(nodeId: string, options: any = {}): Observable`
-Gets the stored information about a node. - -`getNodeChildren(nodeId: string, options: any = {}): Observable`
-Gets the items contained in a folder node. - -`createNode(parentNodeId: string, nodeBody: any, options: any = {}): Observable`
-Creates a new document node inside a folder. - -`createFolder(parentNodeId: string, nodeBody: any, options: any = {}): Observable`
-Creates a new folder node inside a parent folder. - -`updateNode(nodeId: string, nodeBody: any, options: any = {}): Observable`
-Updates the information about a node. - -`deleteNode(nodeId: string, options: any = {}): Observable`
-Moves a node to the "trashcan". - -`restoreNode(nodeId: string): Observable`
-Restores a node previously moved to the "trashcan". +- `getNode(nodeId: string, options: any = {}): Observable` + Gets the stored information about a node. + - `nodeId` - ID of the target node + - `options` - Optional parameters supported by JSAPI +- `getNodeChildren(nodeId: string, options: any = {}): Observable` + Gets the items contained in a folder node. + - `nodeId` - ID of the target node + - `options` - Optional parameters supported by JSAPI +- `createNode(parentNodeId: string, nodeBody: any, options: any = {}): Observable` + Creates a new document node inside a folder. + - `parentNodeId` - ID of the parent folder node + - `nodeBody` - Data for the new node + - `options` - Optional parameters supported by JSAPI +- `createFolder(parentNodeId: string, nodeBody: any, options: any = {}): Observable` + Creates a new folder node inside a parent folder. + - `parentNodeId` - ID of the parent folder node + - `nodeBody` - Data for the new folder + - `options` - Optional parameters supported by JSAPI +- `updateNode(nodeId: string, nodeBody: any, options: any = {}): Observable` + Updates the information about a node. + - `nodeId` - ID of the target node + - `nodeBody` - New data for the node + - `options` - Optional parameters supported by JSAPI +- `deleteNode(nodeId: string, options: any = {}): Observable` + Moves a node to the trashcan. + - `nodeId` - ID of the target node + - `options` - Optional parameters supported by JSAPI +- `restoreNode(nodeId: string): Observable` + Restores a node previously moved to the trashcan. + - `nodeId` - ID of the node to restore +- `handleError(error: any): Observable` + Reports an error. + - `error` - Object representing the error ## Details diff --git a/lib/content-services/document-list/services/folder-actions.service.ts b/lib/content-services/document-list/services/folder-actions.service.ts index cd0e29a165..363328471a 100644 --- a/lib/content-services/document-list/services/folder-actions.service.ts +++ b/lib/content-services/document-list/services/folder-actions.service.ts @@ -41,6 +41,10 @@ export class FolderActionsService { this.setupActionHandlers(); } + /** + * Gets the handler function for an action. + * @param key Identifier for the action + */ getHandler(key: string): ContentActionHandler { if (key) { let lkey = key.toLowerCase(); @@ -49,6 +53,11 @@ export class FolderActionsService { return null; } + /** + * Sets a new handler function for an action. + * @param key Identifier for the action + * @param handler The new handler function + */ setHandler(key: string, handler: ContentActionHandler): boolean { if (key) { let lkey = key.toLowerCase(); @@ -58,6 +67,10 @@ export class FolderActionsService { return false; } + /** + * Checks if an action is available for a particular item. + * @param obj Item to check + */ canExecuteAction(obj: any): boolean { return this.documentListService && obj && obj.entry.isFolder === true; } diff --git a/lib/core/form/services/form.service.ts b/lib/core/form/services/form.service.ts index eae975512c..1a9c8890bb 100644 --- a/lib/core/form/services/form.service.ts +++ b/lib/core/form/services/form.service.ts @@ -90,6 +90,12 @@ export class FormService { return this.apiService.getInstance().activiti.groupsApi; } + /** + * Parses JSON data to create a corresponding Form model. + * @param json JSON to create the form + * @param data Values for the form fields + * @param readOnly Should the form fields be read-only? + */ parseForm(json: any, data?: FormValues, readOnly: boolean = false): FormModel { if (json) { let form = new FormModel(json, data, readOnly, this); @@ -108,7 +114,8 @@ export class FormService { } /** - * Create a Form with a fields for each metadata properties + * Create a Form with a field for each metadata property. + * @param formName Name of the new form */ createFormFromANode(formName: string): Observable { return Observable.create(observer => { @@ -129,7 +136,8 @@ export class FormService { } /** - * Create a Form + * Create a Form. + * @param formName Name of the new form */ createForm(formName: string): Observable { let dataModel = { @@ -144,6 +152,11 @@ export class FormService { ); } + /** + * Saves a form. + * @param formId ID of the form to save + * @param formModel Model data for the form + */ saveForm(formId: string, formModel: FormDefinitionModel): Observable { return Observable.fromPromise( this.editorApi.saveForm(formId, formModel) @@ -152,7 +165,9 @@ export class FormService { /** * @deprecated in 1.7.0, use saveForm API instead - * Add Fileds to A form + * Add Fields to A form + * @param formId ID of the form + * @param formModel Form definition */ addFieldsToAForm(formId: string, formModel: FormDefinitionModel): Observable { this.logService.log('addFieldsToAForm is deprecated in 1.7.0, use saveForm API instead'); @@ -162,7 +177,8 @@ export class FormService { } /** - * Search For A Form by name + * Search for a form by name. + * @param name The form name to search for */ searchFrom(name: string): Observable { let opts = { @@ -179,7 +195,7 @@ export class FormService { } /** - * Get All the forms + * Gets all the forms. */ getForms(): Observable { let opts = { @@ -200,6 +216,10 @@ export class FormService { .catch(err => this.handleError(err)); } + /** + * Get instance variables for a process. + * @param processInstanceId ID of the target process + */ getProcessVarablesById(processInstanceId: string): Observable { return Observable.fromPromise(this.processInstanceVariablesApi.getProcessInstanceVariables(processInstanceId)) .map(this.toJson) @@ -207,7 +227,7 @@ export class FormService { } /** - * Get All the Tasks + * Gets all the tasks. */ getTasks(): Observable { return Observable.fromPromise(this.taskApi.listTasks({})) @@ -216,7 +236,7 @@ export class FormService { } /** - * Get Task + * Gets a task. * @param taskId Task Id */ getTask(taskId: string): Observable { @@ -226,7 +246,7 @@ export class FormService { } /** - * Save Task Form + * Save Task Form. * @param taskId Task Id * @param formValues Form Values */ @@ -275,8 +295,8 @@ export class FormService { } /** - * Returns form definition by a given name. - * @param name + * Returns form definition with a given name. + * @param name The form name */ getFormDefinitionByName(name: string): Observable { let opts = { @@ -301,6 +321,10 @@ export class FormService { .catch(err => this.handleError(err)); } + /** + * Gets a process instance. + * @param processId ID of the process to get + */ getProcessIntance(processId: string): Observable { return Observable.fromPromise(this.processApi.getProcessInstance(processId)) .map(this.toJson) @@ -318,26 +342,57 @@ export class FormService { .catch(err => this.handleError(err)); } + /** + * Gets values of fields populated by a REST backend. + * @param taskId Task identifier + * @param field Field identifier + */ getRestFieldValues(taskId: string, field: string): Observable { return Observable.fromPromise(this.taskApi.getRestFieldValues(taskId, field)).catch(err => this.handleError(err)); } + /** + * Gets values of fields populated by a REST backend using a process ID. + * @param processDefinitionId Process identifier + * @param field Field identifier + */ getRestFieldValuesByProcessId(processDefinitionId: string, field: string): Observable { return Observable.fromPromise(this.processApi.getRestFieldValues(processDefinitionId, field)).catch(err => this.handleError(err)); } + /** + * Gets column values of fields populated by a REST backend using a process ID. + * @param processDefinitionId Process identifier + * @param field Field identifier + * @param column Column identifier + */ getRestFieldValuesColumnByProcessId(processDefinitionId: string, field: string, column?: string): Observable { return Observable.fromPromise(this.processApi.getRestTableFieldValues(processDefinitionId, field, column)).catch(err => this.handleError(err)); } + /** + * Gets column values of fields populated by a REST backend. + * @param taskId Task identifier + * @param field Field identifier + * @param column Column identifier + */ getRestFieldValuesColumn(taskId: string, field: string, column?: string): Observable { return Observable.fromPromise(this.taskApi.getRestFieldValuesColumn(taskId, field, column)).catch(err => this.handleError(err)); } + /** + * Returns a URL for the profile picture of a user. + * @param userId ID of the target user + */ getUserProfileImageApi(userId: number): string { return this.apiService.getInstance().activiti.userApi.getUserProfilePictureUrl(userId); } + /** + * Gets a list of workflow users. + * @param filter Filter to select specific users + * @param groupId Group ID for the search + */ getWorkflowUsers(filter: string, groupId?: string): Observable { let option: any = {filter: filter}; if (groupId) { @@ -354,6 +409,11 @@ export class FormService { .catch(err => this.handleError(err)); } + /** + * Gets a list of groups in a workflow. + * @param filter Filter to select specific groups + * @param groupId Group ID for the search + */ getWorkflowGroups(filter: string, groupId?: string): Observable { let option: any = {filter: filter}; if (groupId) { @@ -364,6 +424,10 @@ export class FormService { .catch(err => this.handleError(err)); } + /** + * Gets the ID of a form. + * @param res Object representing a form + */ getFormId(res: any): string { let result = null; @@ -374,6 +438,10 @@ export class FormService { return result; } + /** + * Creates a JSON representation of form data. + * @param res Object representing form data + */ toJson(res: any) { if (res) { return res || {}; @@ -381,6 +449,10 @@ export class FormService { return {}; } + /** + * Creates a JSON array representation of form data. + * @param res Object representing form data + */ toJsonArray(res: any) { if (res) { return res.data || []; @@ -388,6 +460,10 @@ export class FormService { return []; } + /** + * Reports an error message. + * @param error Data object with optional `message` and `status` fields for the error + */ handleError(error: any): Observable { let errMsg = FormService.UNKNOWN_ERROR_MESSAGE; if (error) { diff --git a/lib/core/services/dynamic-component-mapper.service.ts b/lib/core/services/dynamic-component-mapper.service.ts index b8a6d1eaac..c3fdd2f23b 100644 --- a/lib/core/services/dynamic-component-mapper.service.ts +++ b/lib/core/services/dynamic-component-mapper.service.ts @@ -31,6 +31,11 @@ export abstract class DynamicComponentMapper { protected defaultValue: Type<{}> = undefined; protected types: { [key: string]: DynamicComponentResolveFunction } = {}; + /** + * Gets the currently active ComponentTypeResolver function for a field type. + * @param type The type whose resolver you want + * @param defaultValue Default type returned for types that are not yet mapped + */ getComponentTypeResolver(type: string, defaultValue: Type<{}> = this.defaultValue): DynamicComponentResolveFunction { if (type) { return this.types[type] || DynamicComponentResolver.fromType(defaultValue); @@ -38,6 +43,12 @@ export abstract class DynamicComponentMapper { return DynamicComponentResolver.fromType(defaultValue); } + /** + * Sets or optionally replaces a ComponentTypeResolver function for a field type. + * @param type The type whose resolver you want to set + * @param resolver The new resolver function + * @param override The new resolver will only replace an existing one if this parameter is true + */ setComponentTypeResolver(type: string, resolver: DynamicComponentResolveFunction, override: boolean = false) { if (!type) { throw new Error(`type is null or not defined`); @@ -55,6 +66,11 @@ export abstract class DynamicComponentMapper { this.types[type] = resolver; } + /** + * Finds the component type that is needed to render a form field. + * @param model [Form field model](form-field.model.md) for the field to render + * @param defaultValue Default type returned for field types that are not yet mapped. + */ resolveComponentType(model: DynamicComponentModel, defaultValue: Type<{}> = this.defaultValue): Type<{}> { if (model) { let resolver = this.getComponentTypeResolver(model.type, defaultValue); diff --git a/lib/core/services/highlight-transform.service.ts b/lib/core/services/highlight-transform.service.ts index e922e5fb48..073bf386ac 100644 --- a/lib/core/services/highlight-transform.service.ts +++ b/lib/core/services/highlight-transform.service.ts @@ -21,6 +21,12 @@ export interface HightlightTransformResult { } export class HighlightTransformService { + /** + * Searches for `search` string(s) within `text` and highlights all occurrences. + * @param text Text to search within + * @param search Text pattern to search for + * @param wrapperClass CSS class used to provide highlighting style + */ public highlight(text: string, search: string, wrapperClass: string = 'highlight'): HightlightTransformResult { let isMatching = false, result = text; diff --git a/lib/core/services/nodes-api.service.ts b/lib/core/services/nodes-api.service.ts index 09cc63ad4c..b53fe3d52d 100644 --- a/lib/core/services/nodes-api.service.ts +++ b/lib/core/services/nodes-api.service.ts @@ -38,6 +38,11 @@ export class NodesApiService { return entity.entry; } + /** + * Gets the stored information about a node. + * @param nodeId ID of the target node + * @param options Optional parameters supported by JSAPI + */ getNode(nodeId: string, options: any = {}): Observable { const { nodesApi, handleError, getEntryFromEntity } = this; const defaults = { @@ -53,6 +58,11 @@ export class NodesApiService { .catch(handleError); } + /** + * Gets the items contained in a folder node. + * @param nodeId ID of the target node + * @param options Optional parameters supported by JSAPI + */ getNodeChildren(nodeId: string, options: any = {}): Observable { const { nodesApi, handleError } = this; const defaults = { @@ -69,6 +79,12 @@ export class NodesApiService { .catch(handleError); } + /** + * Creates a new document node inside a folder. + * @param parentNodeId ID of the parent folder node + * @param nodeBody Data for the new node + * @param options Optional parameters supported by JSAPI + */ createNode(parentNodeId: string, nodeBody: any, options: any = {}): Observable { const { nodesApi, handleError, getEntryFromEntity } = this; const promise = nodesApi @@ -78,11 +94,23 @@ export class NodesApiService { return Observable.fromPromise(promise).catch(handleError); } + /** + * Creates a new folder node inside a parent folder. + * @param parentNodeId ID of the parent folder node + * @param nodeBody Data for the new folder + * @param options Optional parameters supported by JSAPI + */ createFolder(parentNodeId: string, nodeBody: any, options: any = {}): Observable { const body = Object.assign({ nodeType: 'cm:folder' }, nodeBody); return this.createNode(parentNodeId, body, options); } + /** + * Updates the information about a node. + * @param nodeId ID of the target node + * @param nodeBody New data for the node + * @param options Optional parameters supported by JSAPI + */ updateNode(nodeId: string, nodeBody: any, options: any = {}): Observable { const { nodesApi, handleError, getEntryFromEntity } = this; const promise = nodesApi @@ -92,6 +120,11 @@ export class NodesApiService { return Observable.fromPromise(promise).catch(handleError); } + /** + * Moves a node to the trashcan. + * @param nodeId ID of the target node + * @param options Optional parameters supported by JSAPI + */ deleteNode(nodeId: string, options: any = {}): Observable { const { nodesApi, handleError } = this; const promise = nodesApi @@ -102,6 +135,10 @@ export class NodesApiService { .catch(handleError); } + /** + * Restores a node previously moved to the trashcan. + * @param nodeId ID of the node to restore + */ restoreNode(nodeId: string): Observable { const { nodesApi, handleError, getEntryFromEntity } = this; const promise = nodesApi @@ -113,6 +150,10 @@ export class NodesApiService { .catch(handleError); } + /** + * Reports an error. + * @param error Object representing the error + */ handleError(error: any): Observable { return Observable.throw(error); }